使用Log4php将php日志(自定义应用程序)重定向到syslog ng


Redirecting php logs (custom application) using Log4php to syslog-ng

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

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

destination loghost {
 nbsp nbsp nbsp nbsp;tcp("192.168.1.123" port(5140));
};
log {
 nbsp nbsp nbsp nbsp;source(src);
 nbsp nbsp nbsp nbsp;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文件夹下生成的日志——我的问题是——我如何自定义日志条目?是否可以将这些日志移动到其他文件名?

任何指针都非常有用。

谢谢。

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

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

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

一些数据丢失:

  • 如果您不喜欢默认的"Apachelopg4php",则应该提供一个ident字符串
  • 您想登录哪个设施?默认值为"USER"
  • 您希望使用哪个优先级?如果您定义不覆盖优先级,那么此处将使用日志事件的日志级别,但log4php提供的级别不会完全映射到syslog提供的级别。在这里使用定义的优先级可能是一个很好的ide

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