質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1969閲覧

[Python3]1つのロガーでsyslogと新規ログファイルに出力する仕組みを作ったが、syslogのログレベルが繁栄されません。。

kenmero

総合スコア30

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/06/07 02:13

編集2019/06/07 03:51

以下関数を見てもらった方が早いですが、簡単に説明をします。
一つのロガーに、syslogに出力するハンドラーと別ログファイルに出力する
ハンドラーを設定して両方にログ出力する関数を作成しました。

sysログファイルにはdebugレベル以上のログを
別ログファイルにはinfoレベル以上のログを出力する仕組みにしたいのですが
syslogハンドラーのloglevelをdebugにしても
debugレベルのログがsyslogに出力されず、infoレベルからです。

どうやら別ログファイルに設定したハンドラーのレベルが
優先されているようです。

何か対応策はありますでしょうか?

Python

1import logging 2import logging.handlers 3 4#syslog用フォーマット 5syslog_fmt = '{0}: [%(levelname)8s] --- process:%(process)d thread:%(threadName)s message: %(message)s package[%(filename)s] function[%(funcName)s]' 6 7#実行ログ用フォーマット 8jikolog_fmt = '[%(asctime)s] [%(levelname)8s] --- process:%(process)d thread:%(threadName)s %(message)s' 9 10 11#実行ログ用のロガーを生成 12def get_logger(script_id, filename): 13 14 15 #フォーマット生成 16 formatter = logging.Formatter(jikolog_fmt) 17 sys_formatter = logging.Formatter(syslog_fmt.format(script_id)) 18 19 #実行ログ用ハンドラー生成 20 handler = logging.FileHandler(filename) 21 handler.formatter = formatter 22 handler.setLevel(logging.INFO) 23 24 #sysログ用ハンドラー生成 25 #sys_handler = logging.handlers.SysLogHandler(address='/dev/log') 26 sys_handler = logging.handlers.SysLogHandler() 27 sys_handler.formatter = sys_formatter 28 sys_handler.setLevel(logging.DEBUG) 29 30 #ロギング生成 31 logger = logging.getLogger(script_id) 32 logger.setLevel(logging.DEBUG) 33 logger.addHandler(handler) 34 logger.addHandler(sys_handler) 35 36 return logger

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

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

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

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

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

kenmero

2019/06/07 03:51

修正しました。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問