2017-10-20 58 views
1

我创建了一个记录到我的系统日志服务器的方法,并使用'logging.Formatter'格式化消息。但是,似乎Formatter正在添加额外的文本到我的系统日志消息,我不确定如何摆脱它。python logging.Formatter向消息添加附加值

这里是位于logger.py方法:

import logging 
import logging.handlers 
import os 

def sendLog(msg): 
    address = "192.168.1.200" 
    port = 514 

    syslogger = logging.getLogger("app_processing LEVEL='{}'".format(os.environ['ENV'])) 
    syslogger.setLevel(logging.DEBUG) 

    # f = ContextFilter() 
    # syslogger.addFilter(f) 

    handler = logging.handlers.SysLogHandler(address=(address, port)) 
    formatter = logging.Formatter("%(asctime)s %(name)s %(message)s", datefmt='%m/%d/%Y %H:%M:%S') 

    handler.setFormatter(formatter) 

    syslogger.addHandler(handler) 
    syslogger.debug(msg) 

而且我从其他模块,称之为:

logger.sendLog("FUNCTION='get_inventory_db' MESSAGE='Retrieving inventory information'") 

然而,当它记录到的结果是服务器:

2017-10-20 14:48:35 -04:00 192.168.1.101 192.168.1.101 user.debug 10/20/2017 18:48:35 app_processing LEVEL='development' FUNCTION='get_inventory_db' MESSAGE='Retrieving inventory information' 

注意2017-10-20 14:48:35 -04:00 192.168.1.101 192.168.1.101 user.debug之前显示的应该是th启动系统日志消息。

我期待输出如下:

10/20/2017 18:48:35 app_processing LEVEL='development' FUNCTION='get_inventory_db' MESSAGE='Retrieving inventory information' 

我不是正确地使用格式化?

回答

0

您完全正确地使用格式化程序&日志库。

提到的前缀与python的日志记录库无关。整个以"10/20/2017 18:48:35 ………"开头的行被python发送到系统日志。

无论添加什么,都是系统日志的配置,应该在系统日志的服务器端进行调查。它不能通过应用程序及其日志进行控制。

您可以“修复”这些行的唯一方法是从您自己的日志格式中删除任何日期时间,并依赖syslog的正确前缀。

+0

好的,很高兴知道......我会从另一端接近它。 – Godzilla74