账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    一个.py脚本利用logging同时输出两个log文件
    45
    0

    问题描述

    一个.py脚本利用logging同时输出两个log文件,
    通过两个不同的配置文件,可以生成两个log文件,
    但是只有后一个log对象可以写进内容,前一个log对象无法写入内容

    问题出现的环境背景及自己尝试过哪些方法

    不知道什么原因,怀疑跟handlers类型有关?

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    test.py
    #!/usr/bin/env python
    # coding: utf-8
    import logging.config
    import logging
    def get_logger(logger_name, logger_path):

    logging.config.fileConfig(logger_path)
    return logging.getLogger(logger_name)
    

    if name == '__main__':

    log_path1='logging.conf'
    log_path2='audit.conf'
    
    logger1 = get_logger('Glon', log_path1)
    logger2 = get_logger('GlonHo', log_path2)
    
    logger1.info(' test1 log msg: %s', "111111111111111111111")
    logger2.info(' test2 log msg: %s', "222222222222222222222")
    

    logging.conf
    [loggers]
    keys=root

    [handlers]
    keys=rotatingHandler

    [formatters]
    keys=simpleFormatter

    [logger_root]
    level=INFO
    handlers=rotatingHandler

    [handler_rotatingHandler]
    class=logging.handlers.TimedRotatingFileHandler
    level=INFO
    formatter=simpleFormatter
    args=('trace.log', 'midnight')

    [formatter_simpleFormatter]
    format=%(asctime)s %(levelname)s %(message)s
    datefmt=

    audit.conf
    [loggers]
    keys=root

    [handlers]
    keys=rotatingHandler

    [formatters]
    keys=simpleFormatter

    [logger_root]
    level=INFO
    handlers=rotatingHandler

    [handler_rotatingHandler]
    class=logging.handlers.TimedRotatingFileHandler
    level=INFO
    formatter=simpleFormatter
    args=('wacaudit_console0.csv', 'midnight')

    [formatter_simpleFormatter]
    format=%(message)s

    你期待的结果是什么?实际看到的错误信息又是什么?

    题目描述

    期望:log信息同时写入trace.log、wacaudit_console0.csv这两个log文件
    实际:这两个log文件可同时生成,可log信息只写进wacaudit_console0.csv,却没有写进trace.log
    结果:
    cat trace.log
    cat wacaudit_console0.csv
    test2 log msg: 222222222222222222222

    问题出现的环境背景及自己尝试过哪些方法

    将test.py当中的
    logger1 = get_logger('Glon', log_path1)
    logger2 = get_logger('GlonHo', log_path2)
    这两句代码互换位置,log信息可以写进trace.log,wacaudit_console0.csv也就没有值写进去了。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 随风飘远 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部