通过HTTP远程登录java应用程序

时间:2011-12-09 07:05:27

标签: java http logging log4j

伙计们,有没有办法通过HTTP远程登录? (像log4j这样通过TCP进行远程日志记录)

感谢

5 个答案:

答案 0 :(得分:1)

Log4j完全支持SocketAppender appender及其子类的远程日志记录。

答案 1 :(得分:1)

目前在log4j中没有HTTP appender,但已向邮件列表one in 2004one in 2007提交了两个不同的appender。

也许您可以根据代码创建自己的HTTP appender?

答案 2 :(得分:0)

Rsyslog是一种流行的中央日志记录系统。您可以配置log4j以将日志文件发送到中央日志记录系统。

https://www.rsyslog.com/

这是log4j的配置。

 <Appenders>
    .............

     <Syslog name="syslog" format="RFC5424" host="myhost" port="514"
                protocol="UDP" appName="testlog4j" includeMDC="false" mdcId="testlog4j"
                facility="LOCAL0" enterpriseNumber="18060" newLine="false"
                messageId="Audit">
                <LoggerFields>
                      <KeyValuePair key="thread" value="%t"/>
                      <KeyValuePair key="priority" value="%p"/>
                      <KeyValuePair key="category" value="%c"/>
                      <KeyValuePair key="exception" value="%ex"/>
                </LoggerFields>

        </Syslog>
</Appenders>

Rsyslog替代品

  • Nxlog
  • Kiwi Syslog服务器
  • Syslog Watcher

答案 3 :(得分:0)

您可以使用NXLog输入和输出模块(im_http和om_http)通过HTTP或HTTPS进行远程日志记录。

im_http 模块可以配置为接受HTTP或HTTPS连接。它期望来自客户端的HTTP POST请求。 收到有效请求才能在Keep-Alive模式下运行时,模块将不会关闭连接。它将以HTTP / 1.1 201 Created响应每个有效的POST请求。此确认可确保可靠的消息传递。

om_http 模块将以纯HTTP或HTTPS模式连接到指定的URL。每个事件都在单个POST请求中传输。然后,模块等待包含成功状态代码(200、201或202)的响应。

免费提供的https://nxlog.co/products/nxlog-community-edition/download

社区版中提供了这些模块

答案 4 :(得分:0)

这取决于您需要通过HTTP(S)支持的确切协议,但我假设您正在通过HTTP(通过POST请求)询问有关RFC 5424的信息。在这种情况下,log4j2似乎是目前(2018年底)唯一可用的解决方案。

附有HttpAppender

Rfc5424Layout可以满足您的需求:

https://logging.apache.org/log4j/2.x/manual/appenders.html https://logging.apache.org/log4j/2.x/manual/layouts.html

当前,我看到Log4j2 2.11.1,此解决方案有效,但就我而言,需要一些定制。