Glassfish 到 Syslog

Posted

技术标签:

【中文标题】Glassfish 到 Syslog【英文标题】:Glassfish to Syslog 【发布时间】:2012-02-11 20:19:09 【问题描述】:

我正在努力让 Glassfish 3.1.1 登录到 syslog,但我做不到。不知道是不是bug,就是不知道怎么调试。

第一步也是显而易见的:我选中了管理控制台上的复选框以写入系统日志,然后我还标记了复选框写入系统控制台。他们都没有工作。

我检查了 logging.properties,这条线在那里

com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=true

谷歌搜索我发现一些人抱怨被遗弃的问题。还有什么我应该做的,或者我必须编写一个自定义日志处理程序来做到这一点?

【问题讨论】:

【参考方案1】:

自 GF 2.1 以来,与 syslog 的连接发生了变化,其中使用了本机库“libutilforsyslog.so”。在我看来,您现在必须在 localhost 上提供 UDP 端口 514 才能接收 GlassFish 3 的系统日志消息。

com.sun.enterprise.server.logging.SyslogHandler 像这样创建一个 syslog 实例:

sysLogger = new Syslog("localhost");  //for now only write to this host

... 这是 com.sun.enterprise.server.logging.Syslog 的一个实例。此类构建一个 UDP 数据报,该数据报被发送到端口 514(硬编码)。

我在运行 GlassFish 的 Debian 主机上有 syslog-ng 包。 syslog-ng 配置了默认的本地日志 src:

source s_src  unix-dgram("/dev/log"); internal();
             file("/proc/kmsg" program_override("kernel"));
;

在本例中,您可以简单地为 UDP 端口 514 添加一个侦听器:

udp(ip(127.0.0.1) port(514)); 

【讨论】:

【参考方案2】:

为了在 Glassfish 4.1 中启用系统日志,我们必须更改域下的 logging.properties(例如 glassfish/domains/domain1/config)

线

handlerServices=com.sun.enterprise.server.logging.GFFileHandler

应该改

handlerServices=com.sun.enterprise.server.logging.GFFileHandler,com.sun.enterprise.server.logging.SyslogHandler

见:[GLASSFISH-20718] Write to System Log option do not send log on localhost udp port 514

为了以更简洁的方式进行此更改,而不是直接更改 logging.properties,您可以使用 asadmin,如下所示:

bash-4.3# asadmin set-log-attributes handlers=java.util.logging.ConsoleHandler,com.sun.enterprise.server.logging.SyslogHandler

handlers logging attribute value set to java.util.logging.ConsoleHandler,com.sun.enterprise.server.logging.SyslogHandler.
The logging attributes are saved successfully for server.

最后,为了启用系统日志,您可以调用 asadmin 如下:

bash-4.3# asadmin set-log-attributes com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=true

com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging logging attribute value set to true.
The logging attributes are saved successfully for server.

【讨论】:

以上是关于Glassfish 到 Syslog的主要内容,如果未能解决你的问题,请参考以下文章

在表单登录 Glassfish 上禁用重定向到上次访问的资源

如何将 jar 部署到 glassfish,其中包含一个主要方法?

如何在端口 80 上将战争文件部署到 Glassfish?

如何将war文件部署到Glassfish?

将应用程序部署到 GlassFish Server 时出现问题 - 映射问题?

将 EJB Jar 部署到 Glassfish 时出现异常