【发布时间】:2020-10-14 22:53:29
【问题描述】:
我正在尝试学习如何使用日志记录模块。 我想将信息记录到控制台和文件中。 我承认我还没有完成对https://docs.python.org/3/library/logging.html#logging.basicConfig和https://docs.python.org/3/howto/logging.html的学习
对于像我这样的新手来说,学习所有这些有点令人生畏,但我正在努力。
我正在尝试使用来自https://docs.python.org/3/howto/logging-cookbook.html 的“记录到多个目的地”程序的修改版本,我将其称为“Cookbook_Code”。
Cookbook_Code 出现在 URL 标题“登录到多个目的地”下。
但是我有两个问题:
-
食谱代码保存到一个名为: "E:\Zmani\Logging\Logging_to_multiple_destinations_python.org_aaa.py.txt", 我想不通:
A.为什么食谱代码会这样做,也不是
B.如何使日志记录模块保存到以下文件路径(我存储在 var 中,“logfile_fullname”):“e:\zmani\Logging\2020-10-14_14_14_os.walk_script.log”
-
我不知道如何让日志文件使用以下日期时间格式:
“YYYY-MM-DD_HH-MM-SS - INFO:样本信息。”
而不是以下日期时间格式:“10/14/2020 03:00:22 PM - INFO: Sample info.” -
我希望控制台输出包含相同的日期时间前缀: "YYYY-MM-DD_HH-MM-SS-"
任何建议将不胜感激。
谢谢,
Marc
这是我一直在运行的代码:
log_file_fullname = "e:\zmani\Logging\2020-10-14_14_14_os.walk_script.log"
# https://docs.python.org/3/howto/logging-cookbook.html#logging-cookbook
import logging
# set up logging to file - see previous section for more details
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%Y-%m-%d_%H-%M-%S',
filename=log_file_fullname,
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
logging.info('Sample info.')
logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')
logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')
【问题讨论】:
标签: python-3.x logging python-datetime