2017-10-20 85 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