2016-11-21 8 views
0

python manage.py runserverを実行すると、Djangoの開発サーバーが起動し、すべてのログがコンソールに出力されます。Django "./manage.py runserver"コンソールの代わりにファイルにログ

コンソールの代わりにdjango.logファイルにログを書き込む必要があります。

Django logging documentationが良いですが、ログできないようにログを構成するようです。python manage.py runserver

質問:./manage.py runserverのファイルをすべてログに記録するにはどうすればよいですか?

答えて

3

これは、単純なLinuxのリダイレクトされ、それは次のようになります。

python manage.py runserver 0.0.0.0:8080 >> log.log 2>&1 

私はローカルポートとして8080を設定して、あなたのプロジェクトに応じてそれを変更する必要があることに注意してください。

PS:このメソッド(runserverを管理する)は、開発用にのみ使用してください。

+1

構文ドッカーを使用する: CMD [ "/ binに/ SH"、 "-c"、「/manage.pyのrunserver 0.0.0.0:3000> > log.log 2>&1 "] – Vingtoft

1

これらは、ログがコンソールとファイルの両方に書き込まれることを確認するいくつかのサンプル設定です。あなたはDEV-設定でこれを変更/追加することができます。

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'standard': { 
      'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s' 
     }, 
    }, 
    'handlers': { 
     # this is what you see in runserver console 
     'console': { 
      'class': 'logging.StreamHandler', 
      'formatter': 'standard', 
     }, 
     # this handler logs to file 
     #▼▼▼▼ this is just a name so loggers can reference it 
     'file': { 
      'class': 'logging.FileHandler', 
      # choose file location of your liking 
      'filename': os.path.normpath(os.path.join(BASE_DIR, '../../logs/django.log')), 
      'formatter': 'standard' 
     }, 
    }, 
    'loggers': { 
     # django logger 
     'django': { 
      # log to console and file handlers 
      'handlers': ['console', 'file'], 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'ERROR'), # choose verbosity 
     }, 
    }, 
} 
+0

これは、ERRORログレベルでのみログを出力します。したがって、結果はrunserverコマンドと似ていません。 runserverコマンドでどのログレベルが使用されているかわかりません。 – Vingtoft

関連する問題