0

我有一个在使用 php 的客户端上运行的自定义应用程序,其日志由log4php.properties(比如说DEBUGINFO)控制但是,除了现有的日志记录设置之外,我想将这些日志发送到syslog-ng正在运行的服务器。

下面是我在客户端(运行 php 应用程序的地方)上的 syslog-ng 配置
文件 -/etc/syslog-ng/syslog-ng.conf条目,

destination loghost {
        tcp("192.168.1.123" port(5140));
};
log {
        source(src);
        destination(loghost);
};

而在客户端log4php.properties
log4php.appender.A2=LoggerAppenderSyslog
log4php.appender.A2.MaxFileSize=10MB
log4php.appender.A2.Priority=DEBUG
log4php.appender.A1.layout.ConversionPattern="%d{d M Y} %d{ABSOLUTE} %X{server.REMOTE_ADDR} %c{2} %-5p %m %n"

但是,我可以在名为 - user-log 的文件中看到我的应用程序在 syslog 文件夹下生成的日志 - 我的问题是 - 我如何自定义日志条目?是否可以将这些日志移动到其他文件名?

任何指针都非常有帮助。

谢谢。

4

1 回答 1

0

请注意,当前版本的 log4php 不推荐使用属性文件格式。请升级到更好的格式。我总是更喜欢原生 PHP 数组,但 XML 也同样适用。

您的配置在某些细节上没有意义:

  • syslog appender 没有 MaxFileSize。
  • 布局应该是附加器“A2”,而不是“A1”

部分数据缺失:

  • 如果您不喜欢默认的“Apache lopg4php”,您应该提供一个 ident 字符串。
  • 您要登录哪个设施?默认为“用户”。
  • 您要使用哪个优先级?如果您定义不覆盖优先级,则此处使用已记录事件的日志级别,但 log4php 提供的级别并不完全映射到 syslog 提供的级别。在这里使用定义的优先级可能是一个好的开始。

有关详细信息,请参阅文档:http: //logging.apache.org/log4php/docs/appenders/syslog.html

于 2012-10-12T23:19:04.603 回答