私信  •  关注

Poolka

Poolka 最近创建的主题
Poolka 最近回复了
5 年前
回复了 Poolka 创建的主题 » 如何使用python中的日志模块生成两个日志文件?

当你使用 logging 实际上,您使用的是在 import logging . 您可以将它与多个处理程序一起使用。例如:

# 1. logging to file
filename = (
    'log_file{}.log'
    .format(
        dt.datetime.today().strftime("_date_%Y-%m-%d_time_%H-%M-%S")))
# path to log folder.
path = os.path.join(os.getcwd(), 'logs')
# create log folder if it does not exist.
if not os.path.isdir(path):
    os.makedirs(path, exist_ok=True)
to_file = logging.FileHandler(os.path.join(path, filename))
to_file.addFilter(lambda x: x.levelno in [20, 40])

# 2. logging to console
to_console = logging.StreamHandler()
to_console.addFilter(lambda x: x.levelno in [20, 21, 40])

# 3. root logger configuration
logging.basicConfig(
    level=10,
    datefmt='%Y-%m-%d %H:%M:%S',
    format='[%(asctime)s]:%(threadName)s:%(levelname)s:%(message)s',
    handlers=[to_console, to_file])

如果要登录到2个文件,则只需创建2个处理程序 logging.FileHandler(...) ,注册它们,并像往常一样使用新配置的根记录器:

logging.info('Some info')

另一个选择是创建两个记录器。如果要分离多个日志消息源,通常需要这样做。

要避免无限循环,请添加 x += 1 在你的while循环的最后。因此,您的代码工作正常,但在一般情况下工作错误。

它工作错误的原因是您只使用一个变量 g 存储结果。使用至少两个变量比较以前找到的子字符串和新找到的子字符串,或使用list记住所有子字符串,然后选择最长的子字符串。