Log4cplus:SocketAppender日志服务器

时间:2018-11-09 19:50:19

标签: sockets server log4cplus

我希望更好地了解Log4cplus SocketAppender与接收此附加事件的日志服务器有关的工作方式。

我阅读了loggingserver和socketappender的Log4cplus src代码,很高兴得到澄清:

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

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

2 个答案:

答案 0 :(得分:1)

  

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

是和是。

  

是否表示如果我要将日志消息发送到远程计算机,那么该计算机必须安装Log4cplus库吗?

嗯,有点。如果只想使用Exception in Tkinter callback Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1705, in __call__ return self.func(*args) File "/Users/dgranulo/Documents/lovgin.py", line 85, in addListItem labels = Label(re, label=stuff) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 2766, in __init__ Widget.__init__(self, master, 'label', cnf, kw) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 2299, in __init__ (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: unknown option "-label" ,则必须使用日志记录服务器。您也可以使用SocketAppender并使用它发送到远程服务器。显然,您必须拥有syslog服务,并允许其中的网络接收。您还可以编写自己的自定义附加程序,将事件发送到所需的任何服务器。

  

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

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

  

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

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

答案 1 :(得分:0)

我只想分享我使用SocketAppender的方式(此设置也适用于位于同一网络中的Docker容器)。

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

# Python 3.7, BeautifulSoup 4.7
# html variable is equal to the above HTML snippet
from bs4 import BeautifulSoup
soup4 = BeautifulSoup(html, "html.parser")
# Get School Head Teacher
school_head_teacher = soup4.find_all('div', {'class':'sidebar-box'})
school_head_teacher = school_head_teacher[1].text.strip()
print(school_head_teacher)

在我使用过的syslog-ng的第二个容器中:

  • Teacher John Doe
  • 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

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

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

请注意,syslog-ng -f /etc/syslog-ng/syslog-ng.conf必须与您的@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:进行检查。