首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4cplus: SocketAppender日志服务器

Log4cplus: SocketAppender日志服务器
EN

Stack Overflow用户
提问于 2018-11-09 19:50:18
回答 2查看 611关注 0票数 1

我希望更好地理解Log4cplus SocketAppender对接收此事件的日志服务器的工作方式。

我阅读了用于日志服务器和socketappender的Log4cplus src代码,我将很高兴得到澄清:

SocketAppender只能将事件发送到Log4cplus日志服务器,而不能发送到任何其他服务器?如果是这样的话:这是否意味着如果我想向远程机器发送日志消息,那么该机器必须安装在Log4cplus库中吗?

我还想知道-这个Log4cplus日志服务器是否作为服务运行?它是否需要特殊的配置和预设置才能使用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-10 23:29:38

SocketAppender只能将事件发送到Log4cplus日志服务器,而不能发送到任何其他服务器?

是的,是的。

这是否意味着如果我想向远程机器发送日志消息,那么该机器必须安装在Log4cplus库中吗?

嗯,算是吧。如果您只想使用SocketAppender,则必须使用日志服务器。您还可以使用SysLogAppender并使用它发送到远程服务器。显然,您必须拥有syslog服务,并允许从其中的网络接收。您还可以编写自己的自定义附录,将事件发送到任何您想要的服务器。

我还想知道-这个Log4cplus日志服务器是否作为服务运行?

不,它是一个简单的可执行文件,可以监听套接字。

它是否需要特殊的配置和预设置才能使用它?

它需要配置文件,以便知道在哪里记录事件。

票数 1
EN

Stack Overflow用户

发布于 2019-02-15 10:25:56

我只是想分享一下我是如何使用SocketAppender的(这个设置也适用于位于同一个网络中的码头容器)。

/usr/share/elasticsearch/config/log4j2.properties

代码语言:javascript
复制
status = error

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n

appender.socket.type=Socket
appender.socket.name=socket
appender.socket.port=601
appender.socket.host=api
appender.socket.reconnectDelayMillis=10000
appender.socket.layout.type = PatternLayout
appender.socket.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
rootLogger.appenderRef.socket.ref = socket

在第二个容器中,我使用了赛斯洛格

  • apk add syslog-ng
  • vi /etc/syslog-ng/syslog-ng.conf
  • syslog-ng -f /etc/syslog-ng/syslog-ng.conf

/etc/syslog-ng/syslog-ng.conf

代码语言:javascript
复制
@version: 3.13

source s_network {
    network(
        transport(tcp)
        port(601)
    );
};

log {
    source(s_network);
    destination(d_network);
};

destination d_network {
    file("/var/log/es_slowlog.log", template("${MSGHDR}${MESSAGE}\n"));
};

注意,@version:必须与您的syslog-ng版本相对应。您可以通过调用syslog-ng -V来检查它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53232412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档