Python的logging.config

來源:互聯網
上載者:User

Python的logging模組介面仿log4j,概念上一致,使用上相當方便。利用logging.config.fileConfig(),可以將日誌的配置用檔案來描述,簡化了日誌的初始化。

常式:

# test.py
import logging
import logging.config

logging.config.fileConfig("logging.conf")

#create logger
logger = logging.getLogger("example")

#"application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

logHello = logging.getLogger("hello")
logHello.info("Hello world!")

設定檔樣本如下:

# logging.conf

[loggers]
keys=root,example

[handlers]
keys=consoleHandler,rotateFileHandler

[formatters]
keys=simpleFormatter

[formatter_simpleFormatter]
format=[%(asctime)s](%(levelname)s)%(name)s : %(message)s

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_example]
level=DEBUG
handlers=rotateFileHandler
qualname=example
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_rotateFileHandler]
class=RotatingFileHandler
level=INFO
formatter=simpleFormatter
args=('test.log', 'a', 200000, 9)

注意,RotatingFileHandler中doRollover()會因為rename()出錯而中途退出,造成記錄檔沒有開啟,並且後繼的日誌訊息都因為記錄檔沒有開啟而失敗。可以自己在rename()處加上try,或者不用RotatingFileHandler。估計隔一段時間就fileConfig()一次也是可以恢複正常。

詳見:Python logging RotatingFileHandler bug 該錯誤僅當記錄檔滿時切換檔案時才可能發生,當檔案被鎖定時才會出錯。正常使用不會有問題,並且日誌出錯不會影響主程式的運行。所以可以放心使用,想再可靠點就直接在源碼中加個try.

檔案來自:http://www.cppblog.com/jinq0123/archive/2007/09/03/usingloggingconfig.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.