从Python程序写入日志文件
我想把一些字符串输出到一个日志文件里,并且希望这个日志文件能够持续更新。
我查了一下Python的日志模块,发现它主要是关于格式化和同时访问的问题。
如果我有什么遗漏的地方,或者有没有其他的方法,请告诉我。
3 个回答
4
你可以使用日志API将信息记录到一个文件里。
举个例子:http://docs.python.org/2/howto/logging.html#logging-to-a-file
14
我想分享一下关于使用日志记录的看法。我最近才发现有个叫做Logging的模块,刚开始我对它有点抵触。可能是因为一开始看起来工作量很大,但其实它非常简单,而且特别有用。
这是我使用的设置。和Mkinds的回答类似,但加上了时间戳。
# Set up logging
log = "bot.log"
logging.basicConfig(filename=log,level=logging.DEBUG,format='%(asctime)s %(message)s', datefmt='%d/%m/%Y %H:%M:%S')
logging.info('Log Entry Here.')
这样会产生类似下面的效果:
22/09/2015 14:39:34 Log Entry Here.
20
通常我会这样做:
# logging
LOG = "/tmp/ccd.log"
logging.basicConfig(filename=LOG, filemode="w", level=logging.DEBUG)
# console handler
console = logging.StreamHandler()
console.setLevel(logging.ERROR)
logging.getLogger("").addHandler(console)
日志部分初始化了日志的基本配置。接下来,我设置了一个控制台处理器,它会单独打印一些日志信息。通常我的控制台输出只显示错误信息(logging.ERROR),而详细的输出则记录在日志文件中。
现在你的日志信息会被打印到文件里。例如可以使用:
logger = logging.getLogger(__name__)
logger.debug("hiho debug message")
甚至可以使用
logging.debug("next line")
也应该可以正常工作。
Doug Hellmann 有一个很不错的指南。