【发布时间】:2011-07-31 11:05:57
【问题描述】:
是否有人有将 python 登录到 2 个或更多不同日志文件的示例。
例如,我想记录到“/tmp/foo.log”和“/tmp/bar.log”
提前致谢
T
【问题讨论】:
是否有人有将 python 登录到 2 个或更多不同日志文件的示例。
例如,我想记录到“/tmp/foo.log”和“/tmp/bar.log”
提前致谢
T
【问题讨论】:
这是一个例子:
import logging
logger1 = logging.getLogger('1')
logger1.addHandler(logging.FileHandler('/tmp/logger1'))
logger2 = logging.getLogger('2')
logger2.addHandler(logging.FileHandler('/tmp/logger2'))
logger1.error('1')
logger2.error('2')
那么,
$ cat /tmp/logger1
1
$ cat /tmp/logger2
2
【讨论】:
这是一个基于 logging.html 示例的完整工作示例。需要注意的主要“问题”是您必须确保为根记录器设置日志级别,以便与文件正确交互。
import logging
logging.getLogger('').setLevel(logging.DEBUG)
def create_log_file(filename, level=logging.INFO):
handler = logging.FileHandler(filename)
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
logging.getLogger('').addHandler(handler)
create_log_file('/temp/log1.log', logging.DEBUG)
create_log_file('/temp/log2.log', logging.INFO)
# Now, we can log to the root logger, or any other logger. First the root...
logging.info('Jackdaws love my big sphinx of quartz.')
# Now, define a couple of other loggers which might represent areas in your
# application:
logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')
logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')
【讨论】:
logging 提供了一个RotatingFileHandler,让您可以轻松地轮换日志文件。