java发送syslog日志,支持多目的ip

  • 依赖:

< dependency>
< groupId>org.syslog4j</ groupId>
< artifactId>syslog4j</ artifactId>
< version>0.9.30</ version>
</ dependency>
 
  • 代码:

import org.productivity.java.syslog4j.Syslog;
import org.productivity.java.syslog4j.SyslogIF;
import org.productivity.java.syslog4j.impl.net.udp.UDPNetSyslogConfig;
import org.springframework.stereotype.Component;

import java.net.URLDecoder;
import java.util.Date;

public class SysLogUtil {

public static void main(String[] args){


StringBuffer buffer = new StringBuffer();
buffer.append("time:" + new Date().toString().substring(4, 20) + ";");
buffer.append("userID:" + "uuu1" + ";");
buffer.append("logType:" + "100"+ ";");
buffer.append("actiom:" + "delete" + ";");
buffer.append("des:" + "312312323");

SysLogUtil log2 = new SysLogUtil();
log2.sendLog("172.18.10.123",514,buffer.toString(),1);
log2.sendLog("172.18.10.124",514,buffer.toString(),1);

}

/**
* 发送syslog
* @param host
* @param port
* @param log
* @param level
*/
public static void sendLog(String host,int port,String log,int level){
try {

UDPNetSyslogConfig config = new UDPNetSyslogConfig();
//设置syslog服务器端地址
config.setHost(host);
//设置syslog接收端口,默认514
config.setPort(port);
//向多个多个ip发送日志不执行shutdo会导致同一个实例无法发送到多个地址
Syslog.shutdown();
//获取syslog的操作类,使用udp协议。syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议
SyslogIF syslog = Syslog.createInstance("udp", config);
syslog.log(level, URLDecoder.decode(log,"utf-8"));
System.out.println("syslog Server:"+host+":"+port);
/* 发送信息到服务器,2表示日志级别 范围为0~7的数字编码,表示了事件的严重程度。0最高,7最低
* syslog为每个事件赋予几个不同的优先级:
0 LOG_EMERG:紧急情况,需要立即通知技术人员。
1 LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失。
2 LOG_CRIT:重要情况,如硬盘错误,备用连接丢失。
3 LOG_ERR:错误,不是非常紧急,在一定时间内修复即可。
4 LOG_WARNING:警告信息,不是错误,比如系统磁盘使用了85%等。
5 LOG_NOTICE:不是错误情况,也不需要立即处理。
6 LOG_INFO:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。
7 LOG_DEBUG:包含详细的开发情报的信息,通常只在调试一个程序时使用。
*/
}catch (Exception e){
e.printStackTrace();
}
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值