2013-06-04 87 views
1

我有一個系統日誌服務器(接收日誌事件和文件存儲)在514端口工作。 系統日誌服務器運行良好,因此使用路由器進行了測試,使用Syslog服務器和端口的IP配置路由器,並將路由器發送到Syslog服務器。測試服務器日誌。與Java,SocketHandler

但是,現在我想創建一個應用程序來替換路由器(當發送事件/日誌到服務器時)。

我有這樣的:

Logger mylogger; 
mylogger = Logger.getLogger(this.getClass().getName()); 
SocketHandler myhandler = null; 
try { 
    myhandler = new SocketHandler("localhost", 514); //With Port 80 Work! 
    myhandler.setLevel(Level.FINEST); 
    mylogger.setLevel(Level.CONFIG); 
    mylogger.addHandler (myhandler); 
    mylogger.log(Level.SEVERE, "SEVERE LOG..."); 
    mylogger.log(Level.WARNING, "WARNING LOG..."); 
    mylogger.log(Level.INFO, "INFO LOG..."); 
    mylogger.log(Level.CONFIG, "CONFIG LOG..."); 
    mylogger.log(Level.FINE, "FINE LOG..."); 
    mylogger.log(Level.FINER, "FINER LOG..."); 
    mylogger.log(Level.FINEST, "FINEST LOG..."); 
    myhandler.close(); 
} 
catch (IllegalArgumentException e) { System.out.println("IllegalArgumentException:"+e.toString()); } 
catch (IOException e) { System.out.println("IOException:"+e.toString()); } 
catch (SecurityException e) { System.out.println("SecurityException0:"+e.toString()); } 

我有這樣的消息:

IOException:java.net.ConnectException: Connection refused: connect 

,問題是插座處理器514端口。

我需要用我的系統日誌服務器的真實IP替換「本地主機」和端口 我該怎麼辦?

請幫幫我。

最好的問候,

伯納爾

+0

是您的Syslog服務器監聽於TCP或UDP? – fge

+0

系統日誌服務器基於Datagrams – bernal

回答

1

問題是壞的。

如果使用UDP,則必須使用UDP而不是TCP。

爲了測試你的UDP系統日誌,你必須使用這樣的事情:

DatagramSocket dgSocket; 
DatagramPacket dgPacket; 
byte[] buf; 
buf = "<67>Test Message".getBytes(); 
try { 
    InetAddress addr; 
    dgSocket = new DatagramSocket(); 

    byte[] ipAddr = new byte[] { (byte)192, (byte)168, (byte)1, (byte)8 };//IP of Server Log 
    addr = InetAddress.getByAddress(ipAddr); 
    //instead of bytes using strings 
    String sRemIP = "192.168.1.8"; //Ip of Syslog Server 
    addr = InetAddress.getByName(sRemIP); 

    int iPort = 514;//Number of Port where listening the Syslog Server 
    dgPacket = new DatagramPacket(buf, buf.length, addr, iPort); 
    dgSocket.send(dgPacket); 
    System.out.println("Sending to IP:"+sRemIP+" Port:"+sPort+" The Message:"+new String(buf, "UTF8")); 
} 
catch (SocketException e) { System.out.println("SocketException:" + e.getMessage());} 
catch (SecurityException e) { System.out.println("SecurityException:" + e.getMessage());} 
catch (UnknownHostException e) { System.out.println("UnknownHostException:" + e.getMessage());} 
catch (IOException e) { System.out.println("IOException:" + e.getMessage());}