【问题标题】:Redirecting php logs (custom application) using Log4php to syslog-ng使用 Log4php 将 php 日志(自定义应用程序)重定向到 syslog-ng
【发布时间】:2012-09-06 12:06:22
【问题描述】:

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

以下是我在客户端(运行 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 文件夹下生成的日志 - 我的问题是 - 我如何自定义日志条目?是否可以将这些日志移动到其他文件名?

任何指针都非常有用。

谢谢。

【问题讨论】:

    标签: php syslog log4php syslog-ng


    【解决方案1】:

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

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

    • 系统日志附加程序没有 MaxFileSize。
    • 布局应该用于附加程序“A2”,而不是“A1”

    部分数据丢失:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2019-11-24
      • 2017-08-24
      • 2016-07-05
      相关资源
      最近更新 更多