我做了一个日志文件。现在我想在日志文件中打印一个标题。这样我们就可以确定这个列是用来做什么的。在
我已经提供了我编写的代码。在
def logger(type_of_message, msg, ticket_no): #This will create records/log in app.log file. And can be used for debuging too.
log_file = str(datetime.utcnow().strftime('%d_%m_%Y')) + '.log'
if(type_of_message == 'INFO' or 'Info'):
logger = logging.LoggerAdapter(logging.getLogger(__name__), {'ticket_no': '%s' % (ticket_no)})
logging.basicConfig(filename = log_file, filemode = 'a', level = logging.INFO, format = '%(ticket_no)s - %(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.info(msg)
elif(type_of_message == 'ERROR' or 'Error'):
logger = logging.LoggerAdapter(logging.getLogger(__name__), {'ticket_no': '%s'%(ticket_no)})
logging.basicConfig(filename = 'app.log', filemode = 'a', level = logging.ERROR, format = '%(ticket_no)s - %(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.info(msg)
我想这样打印:
^{pr2}$
这不是你要求的100%,但我能想到的是最接近的。在
首先,对于同一个程序,不应该多次调用
basicConfig
。它实际上什么也不做。。。在另外,通过定义自己的检查消息类型的函数,您可能会失去
logging
能力。调用logger.info
获取错误消息看起来很有趣。您应该使用Handler
s,查看以下代码:一些解释:
error_handler
和info_handler
将不同类型的消息定向到不同的文件。注意这样,错误消息也会出现在info文件中。在logger
的级别设置为它们之间的最小值(在本例中是INFO
),并添加我们的处理程序。在formatter
s用于头和常规消息。我们首先将头格式化程序分配给两个处理程序。然后我们打印头(使用logger.error
,这样它就可以进入两个日志)。然后用常规格式化程序设置处理程序。在第二个注意:我找不到一种方法来将字段添加到fomat中,就像您试图实现的
^{pr2}$ticket_no
。如您所见,我将列移到消息之前,所以只需在消息的开头添加ticke_no
。例如,您可以做的是:相关问题 更多 >
编程相关推荐