2017-07-31 4 views
0

をコンソールに出力するログメッセージ:Pythonのログの設定:出力ファイルへのトレース、次のログの文を考える

import logging 

... 
def ... 
    try: 
     ... 
    except MyException: 
     ... 
     logger.error("Parsing Error: %s"%(sys.exc_info()[0]),exc_info=True) 

そして、次のようなJSONの設定:

"handlers":{ 
    "error_file_handler": { 
     "class": "logging.handlers.RotatingFileHandler", 
     "level": "ERROR", 
     "formatter": "simple", 
     "filename": "../log/errors.log", 
     "maxBytes": 10485760, 
     "backupCount": 20, 
     "encoding": "utf8" 
    }, 
} 

"loggers": { 
    "my_module": { 
     "level": "ERROR", 
     "handlers": ["console"], 
     "propagate": "no" 
    } 
}, 

どのように私は、このようなこの設定を変更しますトレース出力がコンソールに出力されるのではなく、エラーログに出力されることを確認します。

同時に、ログメッセージの文字列はコンソールに出力されますか?

答えて

0

これを試してみてください:

"handlers": { 
    "error_file_handler": { 
     "class": "logging.handlers.RotatingFileHandler", 
     "level": "ERROR", 
     "formatter": "simple", 
     "filename": "../log/errors.log", 
     "maxBytes": 10485760, 
     "backupCount": 20, 
     "encoding": "utf8" 
    }, 
    'console': { 
     'level': 'INFO', 
     'formatter': 'standard', 
     'class': 'logging.StreamHandler' 
    } 
} 

"loggers": { 
    "my_module": { 
     "level": "ERROR", 
     "handlers": ["console", "error_file_handler"], 
     "propagate": "no" 
    } 
} 

変更:

  1. "handlers": ["console", "error_file_handler"]:ファイルとコンソール
  2. "handlers": ["error_file_handler"]の両方にログインする書き込み:書き込みだから、
  3. など
+0

をファイルにログを私がやろうとしていること私のカスタムメッセージはコンソールに送られ、トレース情報はファイルに送られます。 – bordeo

+0

私はカスタムメッセージについてはっきりしていません。ログレベルを意味しますか? – tuannv562

+0

'logging.error("私のカスタムメッセージ ")'はカスタムメッセージで、 'logging.error(" "、exc_info = True)'はスタックトレースだけを出力します。 'logging.error(私のカスタムメッセージ"、exc_info = True) 'と書くと、カスタムメッセージとスタックトレースの両方がファイルとコンソールの両方に出力されます。 カスタムメッセージがコンソールに送られ、スタックトレース(非常に冗長)がファイルに送られるように、これを分割するにはどうすればよいですか? – bordeo

関連する問題