且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用python日志记录模块将消息信息发送到一个文件,并将错误消息发送到另一个文件

更新时间:2022-12-09 14:35:37

test_log.py:

import logging

def get_logger(    
        LOG_FORMAT     = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
        LOG_NAME       = '',
        LOG_FILE_INFO  = 'file.log',
        LOG_FILE_ERROR = 'file.err'):

    log           = logging.getLogger(LOG_NAME)
    log_formatter = logging.Formatter(LOG_FORMAT)

    # comment this to suppress console output
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(log_formatter)
    log.addHandler(stream_handler)

    file_handler_info = logging.FileHandler(LOG_FILE_INFO, mode='w')
    file_handler_info.setFormatter(log_formatter)
    file_handler_info.setLevel(logging.INFO)
    log.addHandler(file_handler_info)

    file_handler_error = logging.FileHandler(LOG_FILE_ERROR, mode='w')
    file_handler_error.setFormatter(log_formatter)
    file_handler_error.setLevel(logging.ERROR)
    log.addHandler(file_handler_error)

    log.setLevel(logging.INFO)

    return log

def main():

    my_logger = get_logger()

    my_logger.info('This is an INFO message')
    my_logger.warning('This is a WARNING message')
    my_logger.error('This is an ERROR message')


if __name__ == '__main__':
    main()

输出

$ python test_log.py
2013-09-20 11:52:07,096 root         INFO     This is an INFO message
2013-09-20 11:52:07,096 root         WARNING  This is a WARNING message
2013-09-20 11:52:07,096 root         ERROR    This is an ERROR message

$ cat file.log
2013-09-20 11:52:07,096 root         INFO     This is an INFO message
2013-09-20 11:52:07,096 root         WARNING  This is a WARNING message
2013-09-20 11:52:07,096 root         ERROR    This is an ERROR message

$ cat file.err
2013-09-20 11:52:07,096 root         ERROR    This is an ERROR message