Python syslog记录器不能写超过2048个字符

时间:2013-04-04 10:49:50

标签: python logging limit syslog

我正在尝试使用Python的syslog记录器将一些消息打印到syslog。简单记录器,如“How to configure logging to syslog in python?”中所述:

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支持非常大的字符串输入,并且所有参数都作为引用传递,因此在处理如此大的输入时不应该有任何问题。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

rsyslogd limits to 2048 bytes per message by default, but you can set it using $MaxMessageSize parameter in /etc/rsyslog.conf: $MaxMessageSize , default 2k - allows to specify maximum supported message size (both for sending and receiving). Reference: http://www.rsyslog.com/doc/v8-stable/configuration/global/index.html

答案 1 :(得分:0)

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

  

Graylog扩展日志格式(GELF)避免了缺点   经典的平原系统日志:

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.

您可以从此Does Syslog really have a 1KB message limit?

中了解更多信息