我已经在使用一个基本的日志(log)配置,所有模块中的所有消息都存储在一个文件中.然而,我现在需要一个更复杂的解决方案:

  • 两个文件:第一个保持不变.
  • 第二个文件应该有一些自定义格式.

我一直在阅读模块的文档,但目前它们对我来说非常复杂.伐木工人,搬运工人...

简而言之:

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

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

推荐答案

你可以这样做:

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')

Python-3.x相关问答推荐

如何在Python Matplotlib中在x轴上放置点

Python网页抓取:代码输出:汤未定义

错误2没有这样的文件或目录website_content.txt""

数组列的极点成对求和

我想判断df_entry_log[AM_PM],并根据测试填充列

在Pandas 数据帧中为小于5位的邮政编码添加前导零

拆分列表的元素并将拆分后的元素包含到列表中

Pytest顺序测试A,然后测试B,然后再测试A

在不改变 python 中原始数组顺序的情况下,对多维字符串数组进行降序排序?

包含值超出范围的 ID 的新 DataFrame 列?

有没有办法使用 python opencv 计算与图像的白色距离

运行 pip install -r requirements.txt 时出错

使用 python-binance 时,heroku [regex._regex_core.error: bad escape \d at position 7] 出错

解包时是否可以指定默认值?

为什么我在 Python 中收到错误消息无法导入名称 NoneType?

如何将 Matplotlib 图形转换为 PIL Image 对象(不保存图像)

为什么排序列表比未排序列表大

try 在 Mac OS 中运行此命令pipenv install requests时出错

如何为 Python 3.x 安装 psycopg2?

如何从集合中删除多个元素?