Logging:记录到具有不同设置的两个文件

我已经使用了一个基本的日志记录配置,其中所有模块中的所有消息都存储在一个文件中。但是,我现在需要一个更复杂的解决方案:

两个文件:第一个保持不变。

第二个文件应该有一些自定义格式。

我一直在阅读该模块的文档,目前它们对我来说非常复杂。记录器,处理程序...

简而言之:

如何在 Python 3 中记录两个文件,即:

import logging
# ...
logging.file1.info('Write this to file 1')
logging.file2.info('Write this to file 2')
214

你可以这样做:

import logging
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
def setup_logger(name, log_file, level=logging.INFO):
    """To setup as many loggers as you want"""
    handler = logging.FileHandler(log_file)        
    handler.setFormatter(formatter)
    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.addHandler(handler)
    return logger
# first file logger
logger = setup_logger('first_logger', 'first_logfile.log')
logger.info('This is just info message')
# second file logger
super_logger = setup_logger('second_logger', 'second_logfile.log')
super_logger.error('This is an error message')
def another_method():
   # using logger defined above also works here
   logger.info('Inside method')
25
def setup_logger(logger_name, log_file, level=logging.INFO):
    l = logging.getLogger(logger_name)
    formatter = logging.Formatter('%(message)s')
    fileHandler = logging.FileHandler(log_file, mode='w')
    fileHandler.setFormatter(formatter)
    streamHandler = logging.StreamHandler()
    streamHandler.setFormatter(formatter)
    l.setLevel(level)
    l.addHandler(fileHandler)
    l.addHandler(streamHandler)    
setup_logger('log1', txtName+"txt")
setup_logger('log2', txtName+"small.txt")
logger_1 = logging.getLogger('log1')
logger_2 = logging.getLogger('log2')
logger_1.info('111messasage 1')
logger_2.info('222ersaror foo')

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(834)
质量手册和程序文件的区别:Dropbox中的应用程序文件夹
上一篇
辐射4材料代码大全:有角材料 4(angular 4 material)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(62条)