【问题标题】:Glassfish to SyslogGlassfish 到 Syslog
【发布时间】:2023-03-15 21:43:01
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: logging glassfish-3 syslog


    【解决方案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.
      

      【讨论】:

        猜你喜欢
        • 2023-03-29
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多