我使用Python日志框架和默认设置。 对于某些数据比较原因:我必须将日志与其他数据输出进行比较。 但是python日志以默认开头,例如:
INFO:root:post params in transmitter
我可以设置不带INFO:root:
的python日志输出,例如:
post params in transmitter
仅使用我自己的日志?
很多!
答案 0 :(得分:22)
当然可以。您可以将格式设置为您喜欢的格式:
format: '%(message)s'
像这样:
logging.basicConfig(format='%(message)s', ...)
有关详细信息,请参阅文档:http://docs.python.org/library/logging.config.html
答案 1 :(得分:3)
endDate = '2015-07-24'
logging.basicConfig(filename="win" + strftime("%Y%m%d", localtime()) + ".txt", level=logging.DEBUG,format='%(message)s')
答案 2 :(得分:3)
那些"信息:......"或"调试:......"出现在那里因为某个处理程序定义了我的猜测:默认处理程序仍在那里。
您可以在创建后立即查看logger.handlers来查看它。
logger = logging.getLogger()
logger.handlers = [] # This is the key thing for the question!
# Start defining and assigning your handlers here
handler = logging.StreamHandler()
handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s: %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
此外,您可以覆盖该默认处理程序的格式:
if (len(logger.handlers) > 0): # Check here whatever. Or try/except. You get the idea...
formatter = logging.Formatter("%(asctime)s: %(levelname)s - %(message)s")
logger.handlers[0].setFormatter(formatter)
我不是Python专家,所以也许有更好的方法可以删除甚至不创建默认处理程序,但这对我来说效果很好。
注意:如文档中所述,.basicConfig对简单记录器非常有用。如果您有多个格式的多个流,则根据我的意识,它不起作用,您需要使用自定义处理程序。
答案 3 :(得分:2)
使用Formatter
。
答案 4 :(得分:0)
你真的不需要删除INFO字。 (它会真正帮助你,当你的代码更麻烦,你会使用更多的东西,而不仅仅是调试异常等信息)
如果你想将你的数据与那些数据进行比较,你可以做一些事情,比如跳过前10个字符(INFO:ROOT :)然后做你想做的事情。嗯这样的事情:
f = open("my.log","a+")
lines = f.readlines()
for line in lines:
if(line[10:] == my_output):
do_whatever_you_feel_like()