首页 > 解决方案 > python wsgi日志记录到远程服务器被多次发送

问题描述

在 apache/wsgi 应用程序中,我试图将我的应用程序所做的事情记录到远程 rsyslog 守护程序。但我不知道为什么,我要记录的日志在我的日志文件中记录了多次。当我调用测试 url 时,我有一个新的日志行,第二次我有两个新行(在第一行之上),依此类推......我不知道为什么也不知道。会知道什么可能导致这种行为?

谢谢

import logging, socket, os, json, requests, sys
from logging.handlers import SysLogHandler

def application(environ, start_response):
        status = '200 OK'
        html_output = 'App test\n'
        logger = logging.getLogger('test app')
        logger.setLevel(logging.INFO)
        handler = logging.handlers.SysLogHandler('/dev/log')
        formatter = logging.Formatter('Python: { "loggerName":"%(name)s", "timestamp":"%(asctime)s", "pathName":"%(pathname)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}')
        handler.formatter = formatter
        logger.addHandler(handler)
        logger.info('need to sync true')
        response_headers = [('Content-type', 'text/html'), ('Content-Length', str(len(html_output)))]
        start_response(status, response_headers)
        return [bytes(html_output,  'utf-8')]

以下是 /var/log/messages 中的一些日志行,您可以在其中多次看到相同的行:

Mar 27 14:42:53 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:53,687", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316573.687927", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"687", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:53 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:53,687", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316573.687927", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"687", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:56 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:56,194", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316576.194655", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"194", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:56 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:56,194", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316576.194655", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"194", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:56 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:56,194", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316576.194655", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"194", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:57 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:57,700", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316577.700038", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"700", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:57 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:57,700", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316577.700038", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"700", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:57 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:57,700", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316577.700038", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"700", "levelName":"INFO", "message":"need to sync true"}
Mar 27 14:42:57 db-test Python[20249]: { "loggerName":"test app", "timestamp":"2020-03-27 13:42:57,700", "pathName":"/home/prebid-server/serverside-mediasquare/python/test.wsgi", "logRecordCreationTime":"1585316577.700038", "functionName":"application", "levelNo":"20", "lineNo":"18", "time":"700", "levelName":"INFO", "message":"need to sync true"}

标签: pythonloggingmod-wsgiwsgi

解决方案


推荐阅读