logging.handlers.SysLogHandler 省略日志消息中的前导空格

logging.handlers.SysLogHandler omits leading whitespace in log message

我正在编写一个应用程序,它分别使用 logging 模块和 logging.StreamHandler()logging.handlers.SysLogHandler(address='/dev/log') 处理程序记录到 STDOUTsyslog

格式化程序设置为

    handler.setFormatter(logging.Formatter('%(message)s'))

在这两种情况下。

现在 STDOUT 中显示了前导空格(我用它来缩进某些日志消息以提高可读性),但 syslog 中没有。 SysLogHandler 有没有办法像 StreamHandler 那样保留空格?

syslog 守护进程在显示之前修改发送给它们的数据。例如,实际发送到 syslog 守护程序的数据具有 RFC 5424 所要求的 header,您在日志查看器中看到的日志中看不到。因此 SysLogHandler 级别的消息格式不能保证完全忠实的表示(至少在前导空格方面)。