4

我正在尝试使用 Python 的 syslog 记录器将一些消息打印到 syslog。简单记录器,如“如何在 python 中配置日志记录到 syslog? ”中所述:

import logging
import logging.handlers

my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)

handler = logging.handlers.SysLogHandler()

my_logger.addHandler(handler)

my_logger.debug('this is debug')

但是当我试图打印一条很长的消息my_logger.debug('<<4000 chars>>')时,它只打印前 2046 个字符。Python中有任何已知的限制吗?

据我所知,Python 支持非常大的字符串输入,并且所有参数都作为引用传递,因此处理如此大的输入应该没有任何问题。有什么想法吗?

4

2 回答 2

2

默认情况下,rsyslogd 限制为每条消息 2048 个字节,但您可以使用以下$MaxMessageSize参数设置它/etc/rsyslog.conf

$MaxMessageSize ,默认 2k - 允许指定最大支持的消息大小(用于发送和接收)。

参考:http ://www.rsyslog.com/doc/v8-stable/configuration/global/index.html

于 2015-06-25T19:09:54.877 回答
0

你应该使用 GELF http://www.graylog2.org/about/gelf

Graylog 扩展日志格式 (GELF) 避免了经典普通 syslog 的缺点:

Limited to length of 1024 byte - Not much space for payloads like backtraces
Unstructured. You can only build a long message string and define priority, severity etc.

您可以从中阅读更多内容Syslog 真的有 1KB 的消息限制吗?

于 2013-04-04T11:17:42.327 回答