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();
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章