udp接收syslog

该博客展示了如何使用Java创建一个UDP syslog服务器,监听514端口接收日志,以及如何使用syslog4j库发送自定义格式的日志到服务器。日志内容包括操作时间、操作者ID、日志类别和执行动作等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class UDPServer {


        public static void main(String[] args) throws Exception{
                byte[] byt = new byte[1024];
                DatagramPacket dp = new DatagramPacket(byt,byt.length);
                DatagramSocket ds = new DatagramSocket(514);
                while(true){
                        ds.receive(dp);
                        System.out.println("……");
System.out.println("server");
                        System.out.println("接收到:" + new String(byt,0,dp.getLength()).trim());
                }


        }
}






// 发送syslog    需要引入syslog4j-0.9.46.jar


/** 
 * SysLog发送数据 
 * 
 *  
 */  
public class SyslogTest2 {  
  
    public static void main(String[] args){  
        try {  
            //获取syslog的操作类,使用udp协议。syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议  
            SyslogIF syslog = Syslog.getInstance("udp");   
            //设置syslog服务器端地址  
            syslog.getConfig().setHost("127.0.0.1");  
            //设置syslog接收端口,默认514  
            syslog.getConfig().setPort(514);  
            //拼接syslog日志,这个日志是自己定义的,通常我们定义成符合公司规范的格式就行,方便查询。例如 操作时间:2014年8月1日  操作者ID:张三 等。信息就是一个字符串。  
            StringBuffer buffer = new StringBuffer();  
            buffer.append("操作时间:" + new Date().toString().substring(4, 20) + ";");  
            buffer.append("操作者ID:" + "张三" + ";");  
            buffer.append("操作时间:" + new Date()+ ";");  
            buffer.append("日志类别:" + "22"+ ";");  
            buffer.append("执行动作:" + "动作" + ";");  
            buffer.append("备注:" + "备注");  
            /*  发送信息到服务器,2表示日志级别 范围为0~7的数字编码,表示了事件的严重程度。0最高,7最低 
             *  syslog为每个事件赋予几个不同的优先级: 
                LOG_EMERG:紧急情况,需要立即通知技术人员。 
                LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失。 
                LOG_CRIT:重要情况,如硬盘错误,备用连接丢失。 
                LOG_ERR:错误,不是非常紧急,在一定时间内修复即可。 
                LOG_WARNING:警告信息,不是错误,比如系统磁盘使用了85%等。 
                LOG_NOTICE:不是错误情况,也不需要立即处理。 
                LOG_INFO:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。 
                LOG_DEBUG:包含详细的开发情报的信息,通常只在调试一个程序时使用。 
             */  
            syslog.log(0, URLDecoder.decode(buffer.toString(),"utf-8"));  
        } catch (Exception e) {  
        }  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值