Próbuję ustawić dziennik Django do pliku. Na podstawie https://stackoverflow.com/a/19257221/214742 Wymchnąłem się z następującą konfiguracją:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
            'formatter': 'simple'
        },
        'applogfile': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(PROJECT_ROOT, 'MODELINGWEB.log'),
            'maxBytes': 1024*1024*15, # 15MB
            'backupCount': 10,
            'formatter': 'simple'
        },
    },
    'loggers': {
        '': {
          'level': 'DEBUG',
          'handlers': ['console','applogfile']
        },
    },
}

Teraz, kiedy próbuję uruchomić i załadować stronę, jaką wygląda mój dziennik konsoli:

Performing system checks...

System check identified no issues (0 silenced).
June 28, 2017 - 10:18:22
Django version 1.11, using settings 'Modeling.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/Jun/2017 10:18:27] "GET / HTTP/1.1" 200 12564

Dostaję również plik MODELINGWEB.log, ale jest pusty. Dlaczego? Spodziewałem się, że zawiera te same rzeczy ...

1
jonalv 28 czerwiec 2017, 11:22

3 odpowiedzi

Najlepsza odpowiedź

Chociaż jesteś Ustawianie konfiguracji dla rejestratora , nie jesteś rejestrowanie Informacje do pliku:

import logging

logger = logging.getLogger(__name__)
logger.info("blah blah blah")  # Or loggger.error(..), or whatever

Polecam, aby zbliżyć się do Docs ( Link przechodzi do określonej części używania tego obiektu {x0}}).

To, co naprawdę nieznane jest jak dodać sygnał podczas uruchamiania serwera rozwoju, aby uruchomić kawałek kodu powyżej.

1
RompePC 28 czerwiec 2017, 08:53

Jaki jest twój kod do logowania? Musisz uzyskać rejestrator do logowania do określonego rejestratora. Zauważam, że nawet nie podajesz swojego loggera, więc przypuszczam, że używasz "logowania.Error, logowania.debug, itp."

"Loggers": {'': {'Level': "Debug", "Handlers": ["konsola", "Applogfile"]},

0
scott huang 28 czerwiec 2017, 09:20

Jak widać w https://docs.djangoproject.com/ en / dev / tematy / logowanie / # przy użyciu rejestrowania Po skonfigurowaniu loggerów, ładowarek, filtrów i formaterów należy umieścić wywołania rejestrowania do kodu. Korzystanie z ram rejestrowania jest bardzo proste.

Więc co widzisz w konsoli, nie jest naprawdę rejestrowania, ale coś innego

Jeśli chcesz uzyskać rzeczy w konsoli do mojego pliku, możesz użyć rury i {x0}}:

[the command you want to run] | tee you_log_file.log

Na przykład:

ifconfig | tee ifconfig.log

Otrzymasz wyjście w konsoli i pliku ifConfig.log.

1
hxysayhi 28 czerwiec 2017, 09:41