🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1956閲覧

djangoでのloggingについて

bokunokaminoke

総合スコア10

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/07 09:46

以下viewsのfileにはほかのviewの関数も指定されていますが、関係ないので割愛しています。
localの環境でviewsの関数を呼ぶときちんとログが行われるのに、本番で呼ぶとログが行われません。。
理由が不明です。教えていただけないでしょうか?

django/herokuを使用しています。

settings

1LOGGING = { 2 'version': 1, 3 'disable_existing_loggers': False, 4 # ログ出力フォーマットの設定 5 'formatters': { 6 'production': { 7 'format': '%(asctime)s [%(levelname)s] %(process)d %(thread)d ' 8 '%(pathname)s:%(lineno)d %(message)s' 9 }, 10 }, 11 # ハンドラの設定 12 'handlers': { 13 'file': { 14 'level': 'INFO', 15 'class': 'logging.FileHandler', 16 'filename': os.path.dirname(os.path.abspath('logconfig.py')) + '/log/aaa.log', 17 'formatter': 'production', 18 }, 19 }, 20 # ロガーの設定 21 'loggers': { 22 # 自分で追加したアプリケーション全般のログを拾うロガー 23 '': { 24 'handlers': ['file'], 25 'level': 'INFO', 26 'propagate': False, 27 }, 28 # Django自身が出力するログ全般を拾うロガー 29 'django': { 30 'handlers': ['file'], 31 'level': 'INFO', 32 'propagate': False, 33 }, 34 }, 35}

views

1import logging 2logger = logging.getLogger(__name__) 3logger.info("log info test!") 4logger.error("log error test!") 5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

django-heroku の説明にloggingの上書きを無効にしたければ、logging=Falseを指定せよとあります。

https://pypi.org/project/django-heroku/

settings() also accepts keyword arguments that can be passed False as a value, which will disable automatic configuration for their specific areas of responsibility:

  • databases
  • test_runner
  • staticfiles
  • allowed_hosts
  • logging
  • secret_key

以下の様に書けば、logging設定の上書きは無効化できます。

django_heroku.settings(locals(), logging=False)

ただ、Herokuの場合、 /log/aaa.log に書き込んだ内容って見れるんでしょうか? コンソールに出力すればHerokuの管理画面でログを確認できるかと思います。django-herokuはログ出力をコンソールに出すように設定してくれているようです。
https://github.com/heroku/django-heroku/blob/master/django_heroku/core.py#L114-L148

カスタマイズするのであれば、同様にconsoleに出力するように調整がいるかもしれません。

投稿2021/03/07 10:33

shimizukawa

総合スコア1847

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問