首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过python的fileConfig使用日志记录并配置日志文件文件名

如何通过python的fileConfig使用日志记录并配置日志文件文件名
EN

Stack Overflow用户
提问于 2012-12-01 01:00:54
回答 3查看 37.9K关注 0票数 50

我有一个用于登录控制台的日志配置文件和一个具有不同格式和级别的文件。在我的python脚本中,我可以加载这个配置,基本上控制台和文件输出都是正常的。

我在配置文件中设置了文件名,如下所示。

是否可以在python脚本本身中设置该文件名?

python代码:

代码语言:javascript
复制
# set up logging
logging.config.fileConfig(loginipath)
logger = logging.getLogger('sLogger')

# log something
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

日志配置文件:

代码语言:javascript
复制
[loggers]
keys=root,sLogger

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=fileFormatter,consoleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_sLogger]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=sLogger
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=WARNING
formatter=consoleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('logfile.log',)

[formatter_fileFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

[formatter_consoleFormatter]
format=%(levelname)s - %(message)s
datefmt=
EN

回答 3

Stack Overflow用户

发布于 2013-11-27 21:11:39

如下所示更改您的handler_fileHandler部分:

代码语言:javascript
复制
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('%(logfilename)s',)

然后向fileConfig调用添加一个defaults参数

代码语言:javascript
复制
logging.config.fileConfig(loginipath, defaults={'logfilename': '/var/log/mylog.log'})
票数 60
EN

Stack Overflow用户

发布于 2018-04-01 00:04:41

这两个处理程序对我都很有效:

(1)

代码语言:javascript
复制
logging.config.fileConfig( 'logging.ini' , disable_existing_loggers=False)


[handler_myhandler1]
class=FileHandler
level=DEBUG
formatter=form01
args=('python.log', 'w')

(2)

代码语言:javascript
复制
logging.config.fileConfig( 'logging.ini' , disable_existing_loggers=False, defaults={ 'logfilename' : getSomeName() } )

[handler_myhandler2]
class=FileHandler
level=DEBUG
formatter=form01
args=('%(logfilename)s','w')

https://docs.python.org/2/library/logging.config.html上阅读了示例之后

票数 14
EN

Stack Overflow用户

发布于 2013-03-02 20:30:21

尝试在fileConfig()之后调用logging.config.dictConfig()并只设置文件名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13649664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档