假设我有以下配置日志文件:
[loggers]
keys=root,seeker,event
[handlers]
keys=consoleHandler,seekerFileHandler,eventFileHandler
[formatters]
keys=consoleFormatter,logFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,seekerFileHandler,eventFileHandler
[logger_seeker]
level=DEBUG
handlers=consoleHandler,seekerFileHandler
qualname=seeker
propagate=0
[logger_event]
level=DEBUG
handlers=consoleHandler,eventFileHandler
qualname=event
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=consoleFormatter
args=(sys.stdout,)
[handler_seekerFileHandler]
class=FileHandler
level=DEBUG
formatter=logFormatter
args=('seeker.log','a')
[handler_eventFileHandler]
class=FileHandler
level=DEBUG
formatter=logFormatter
args=('event.log','a')
[formatter_consoleFormatter]
format=%(asctime)s - thread:%(thread)d - %(name)s - %(levelname)s | %(message)s
datefmt=%m/%d/%Y %X
[formatter_logFormatter]
format=%(asctime)s | %(message)s
datefmt=%m/%d/%Y %X
通常我会:
^{pr2}$处理每个记录器。然而,我倾向于在两个不同的平台上运行这个软件:Windows和Linux,所以如果他们都把它保存在一个“公共”的位置就更好了。我要找的是:
from sys import platform
if 'win' in platform:
#alter the save path to this location
if 'linux' in platform:
#alter save path to this location
但我不知道如何用一个配置文件来实现,有什么想法吗?在
你有两个选择。在
使用带有不同路径的
logging-linux.conf
文件和logging-win.conf
文件,并将它们加载到平台测试中。不要使用配置文件,而是将logger的创建委托给您自己的模块,并在创建
FileHandler
实例时进行平台测试。要采用的解决方案将取决于代码的复杂性。如果您正在构建库,请查看以下页面:http://docs.python.org/howto/logging.html#configuring-logging-for-a-library
相关问题 更多 >
编程相关推荐