大家好,我是道哥,专注于后端java开发,喜欢写作和分享。如果觉得文章对你有用,那就点个赞呗!如果能转发那是对道哥最大的支持!
syslog的定义
见文知义,syslog,从英文名字上可以看出是指系统日志。
以下内容摘自百度百科:
Syslog常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档消息的标准。这个词汇常用来指涉实际的syslog 协议,或者那些提交syslog消息的应用程序或数据库。
syslog协议属于一种主从式协议:syslog发送端会发送出一个小的文字消息(小于1024位组)到syslog接收端。接收端通常名为“syslogd”、“syslog daemon”或syslog服务器。系统日志消息可以被以UDP协议及╱或TCP协议来发送。
可见syslog支持UDP、TCP协议传输,可以从源机器(syslog client)发送到目标服务器(syslog server)。
一般来说,系统的一些日志会记录在/var/log/目录的不同文件下,权限相关、记录相关、操作相关等分别会记录在该文件夹下的不同目录。
接下来我们学习一下怎么用java语言实现syslog的收发。
引入maven依赖
很庆幸,我们站在巨人的肩上,有现成的maven依赖可以直接使用,不用去一句一句的翻译c语言对syslog server及client的实现。其实根本的实现原理也比较简单,网络通信么,万般都是基于socket,可见最简单的socket通信在网络通信的地位上是多么的高。
syslog的maven依赖链接不同版本列表,我们可以随便使用一个版本,建议还是使用最新版本吧。
org.graylog2 syslog4j 0.9.60
syslog server端
syslog4j包内已经有现成的SyslogMai