SysLog简介和实现

什么是SysLog

syslog协议属于一种主从式协议:syslog发送端会传送出一个小的文字讯息(小于1024字节)到syslog接收端。接收端通常名为“syslogd”、“syslog daemon”或syslog服务器。系统日志讯息可以被以UDP协议及╱或TCP协议来传送。

Syslog 常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档讯息的标准。这个词汇常用来指实际的syslog 协议,或者那些送出syslog讯息的应用程式或数据库。

通俗一点的讲,syslog就是日志发送和接受的一种协议,你可以使用syslog协议实现自己的应用,将日志通过syslog协议从日志生产者发送到日志消费者,消费者保存日志信息,提供日志查询和管理。

为什么要使用syslog

如果一个企业部署了很多系统,每个系统都有自己的日志模块,每个系统都是独立的。那么管理员要想通过日志获取到系统的运行信息或者审计日志,那么工作量是相当大的。这个时候,只有要求所有的系统都将日志传输到syslog服务器上,通过syslog服务器统一管理日志,就会方便很多。当然这些系统包括所有的硬件,软件系统,他们都会源源不断的发来信息,由syslog服务器将信息分类,分级别记录。

如何连接开发SysLog应用

java开发syslog,一般都是开发客户端,服务器都是使用的第三方应用。它们已经给我们做好了syslog收集日志的部分,我们只需要安装就可以了。

开发前准备工作:
安装一个syslog服务器:syslogwatcher      下载地址:http://pan.baidu.com/s/1dDlEEvJ

可以通过Listen和Stop控制是否开启监听,通过Setting-Network来设置监听的UDP和TCP协议的端口
这里写图片描述
第一次使用的时候,需要设置编码为utf-8。这样兼容中文日志。
这里写图片描述
这样就开启了服务端,下面编写客户端程序:
java客户端开发需要引入:syslog4j.jar包。     下载地址:http://pan.baidu.com/s/1qW6qYo0

测试代码如下:

import java.net.URLDecoder;

import org.productivity.java.syslog4j.Syslog;
import org.productivity.java.syslog4j.SyslogIF;

public class test {

    public static void main(String[] args) {
        try {
            // 使用udp协议。
            SyslogIF syslog = Syslog.getInstance("udp");

            // 设置syslog服务器端地址
            syslog.getConfig().setHost("127.0.0.1");

            // 设置syslog接收端口,默认514
            syslog.getConfig().setPort(514);

            // LEVEL_EMERGENCY = 0,LEVEL_ALERT = 1,LEVEL_CRITICAL = 2,LEVEL_ERROR = 3
            // LEVEL_WARN = 4,LEVEL_NOTICE = 5,LEVEL_INFO = 6,LEVEL_DEBUG = 7
            syslog.log(6, URLDecoder.decode("test log_info", "utf-8"));
            syslog.log(syslog.LEVEL_INFO, URLDecoder.decode("test log_info", "utf-8"));

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

测试结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值