python记录到多个文件

时间:2011-04-07 07:45:56

标签: python django logging

是否有人将python登录到2个或更多不同的日志文件。

我想以“/tmp/foo.log”和“/tmp/bar.log”为例进行记录

提前致谢

Ť

2 个答案:

答案 0 :(得分:14)

以下是一个例子:

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

答案 1 :(得分:4)

这是一个基于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.')
相关问题