当使用日志模块时,我有时希望打印一个简单的行,而不将格式字符串(Prints Date)应用于输出
我可能想记录一个没有时间戳的分隔行,该时间戳是由set by format字符串创建的。或者,我的代码可能在日志事件之间执行多个操作,并导致记录另一个字符串。这可能吗?示例:
class Logger( ):
def __init__( self, path ):
msgFormat = '%(asctime)s.%(msecs)d\t%(message)s'
dateFormat = '%m/%d/%Y %H:%M:%S'
logging.basicConfig( format=msgFormat, datefmt=dateFormat, filename=path, level=logging.INFO )
def Log ( self, theStr ):
logging.info( str( theStr ))
log = Logger( validPath )
log.SimpleLog( '-' * 4 )
log.Log( 'Some message' )
# Do some more stuff here
log.SimpleLog( ' Write some more stuff here' )
# Do some more stuff here
输出如下所示:
----
11/13/2019 Some Message
Write some more stuff here
我使用的是Macintosh上的Python3.7。我的logger类不直接打开文件,只是使用logging.BasicConfig()来启动
我已经修改了你的代码来满足你的要求。其思想是将格式化程序设置为只在SimpleLog中输出消息,并在日志完成后将其恢复为以前的格式。这是一个快速而肮脏的解决方案,如果您想在更大的代码库中获得更可持续的东西,最好的方法是使用一个定制的格式化程序来检查
extra
并根据某个键添加时间相关问题 更多 >
编程相关推荐