Pyhton3日志Unicode

2024-07-01 08:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我把我的烧瓶原木送到了贮藏室。我用了下面的代码。你知道吗

import logging, logging.handlers

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
format = logging.Formatter('%(asctime)-s %(levelname)s %(thread)d --- [%(name)s] %(module)s.%(funcName)s :             %(message)s')

command_line = logging.StreamHandler()
command_line.setLevel(logging.DEBUG)
command_line.setFormatter(format)
logger.addHandler(command_line)

logs = logging.handlers.DatagramHandler('localhost', 5000)
logs.setLevel(logging.DEBUG)
logs.setFormatter(format)
logger.addHandler(logs)

但是在logstash和kibana仪表板中,mesage有如下unicode字符

\u0000\u0000\u0002\xF3}q\u0000(X\v\u0000\u0000\u0000processNameq\u0001X\v\u0000\u0000\u0000MainProcessq\u0002X\n\u0000\u0000\u0000stack_infoq\u0003NX\a\u0000\u0000\u0000createdq\u0004GA\xD6ET\x86u\xE4mX\n\u0000\u0000\u0000threadNameq\u0005X\n\u0000\u0000\u0000MainThreadq\u0006X\u0006\u0000\u0000\u0000moduleq\aX\t\u0000\u0000\u0000_internalq\bX\b\u0000\u0000\u0000pathnameq\tXc\u0000\u0000\u0000/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/werkzeug/_internal.pyq\nX\t\u0000\u0000\u0000levelnameq\vX\u0004\u0000\u0000\u0000INFOq\fX\u000F\u0000\u0000\u0000relativeCreatedq\rG@\xA8\x9C\xD3y\x80\u0000\u0000X\u0006\u0000\u0000\u0000threadq\u000EL140736587924416L\nX\b\u0000\u0000\u0000funcNameq\u000FX\u0004\u0000\u0000\u0000_logq\u0010X\u0003\u0000\u0000\u0000msgq\u0011X;\u0000\u0000\u0000 * Running on http://127.0.0.1:5005/ (Press CTRL+C to quit)q\u0012X\b\u0000\u0000\u0000exc_textq\u0013NX\u0005\u0000\u0000\u0000msecsq\u0014G@\x8AP\x899\u0000\u0000\u0000X\a\u0000\u0000\u0000asctimeq\u0015X\u0017\u0000\u0000\u00002017-05-12 11:41:37,842q\u0016X\a\u0000\u0000\u0000processq\u0017M\xE3,X\b\u0000\u0000\u0000exc_infoq\u0018NX\u0004\u0000\u0000\u0000nameq\u0019X\b\u0000\u0000\u0000werkzeugq\u001AX\u0006\u0000\u0000\u0000linenoq\eKWX\b\u0000\u0000\u0000filenameq\u001CX\f\u0000\u0000\u0000_internal.pyq\u001DX\u0004\u0000\u0000\u0000argsq\u001ENX\a\u0000\u0000\u0000messageq\u001FX;\u0000\u0000\u0000 * Running on http://127.0.0.1:5005/ (Press CTRL+C to quit)q X\a\u0000\u0000\u0000levelnoq!K\u0014u.

如何解决此问题?你知道吗


Tags: debugformatlogginghandlerslineloggercommandlogs
1条回答
网友
1楼 · 发布于 2024-07-01 08:20:16

可以使用以下库替换日志处理程序:

https://github.com/vklochan/python-logstash

所以你的代码可以这样重写:

import logging, logstash

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

command_line = logstash.TCPLogstashHandler('localhost', 5000, version=1)
command_line.setLevel(logging.DEBUG)
logger.addHandler(command_line)

logs = logstash.LogstashHandler('localhost', 5000, version=1)
logs.setLevel(logging.DEBUG)
logger.addHandler(logs)

相关问题 更多 >

    热门问题