摘要:上一篇,我初步整理了服務(wù)端接收日志的例子,本篇主要是對客戶端模擬操作的一個(gè)基本例子。
上一篇,我初步整理了Syslog服務(wù)端接收日志的例子,本篇主要是對客戶端模擬操作的一個(gè)基本例子。
package com.tony.util; import java.io.*; import java.net.*; /** * UDP客戶端程序,用于對服務(wù)端發(fā)送數(shù)據(jù),并接收服務(wù)端的回應(yīng)信息. * Title: SyslogClient * Description: none * Copyright @ 2012~2015 HP
* @author Tony * @createDate 2015年8月18日 * @version v1.0 */ public class SyslogClient { private byte[] buffer = new byte[1024]; private DatagramSocket ds = null; /** * 構(gòu)造函數(shù),創(chuàng)建UDP客戶端 * @throws Exception */ public SyslogClient() throws Exception { ds = new DatagramSocket(); } /** * 設(shè)置超時(shí)時(shí)間,該方法必須在bind方法之后使用. * @param timeout 超時(shí)時(shí)間 * @throws Exception */ public final void setSoTimeout(final int timeout) throws Exception { ds.setSoTimeout(timeout); } /** * 獲得超時(shí)時(shí)間. * @return 返回超時(shí)時(shí)間 * @throws Exception */ public final int getSoTimeout() throws Exception { return ds.getSoTimeout(); } public final DatagramSocket getSocket() { return ds; } /** * 接收從指定的服務(wù)端發(fā)回的數(shù)據(jù). * @param lhost 服務(wù)端主機(jī) * @param lport 服務(wù)端端口 * @return 返回從指定的服務(wù)端發(fā)回的數(shù)據(jù). * @throws Exception */ public final String receive(final String lhost, final int lport) throws Exception { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); String info = new String(dp.getData(), 0, dp.getLength()); return info; } /** * 關(guān)閉udp連接. */ public final void close() { try { ds.close(); } catch (Exception ex) { ex.printStackTrace(); } } /** * 向指定的服務(wù)端發(fā)送數(shù)據(jù)信息. * @param host 服務(wù)器主機(jī)地址 * @param port 服務(wù)端端口 * @param bytes 發(fā)送的數(shù)據(jù)信息 * @return 返回構(gòu)造后俄數(shù)據(jù)報(bào) * @throws IOException */ public final DatagramPacket send(final String host, final int port, final byte[] bytes) throws IOException { DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress .getByName(host), port); ds.send(dp); return dp; } /** * 測試客戶端發(fā)包和接收回應(yīng)信息的方法. * @param args * @throws Exception */ public static void main(String[] args) throws Exception { SyslogClient client = new SyslogClient(); //這里我們在本機(jī)測試,使用本機(jī)IP即可 String serverHost = "127.0.0.1"; int serverPort = 514; client.send(serverHost, serverPort, ("什么都可以的接收參數(shù)").getBytes()); String info = client.receive(serverHost, serverPort); System.out.println("服務(wù)端回應(yīng)數(shù)據(jù):" + info); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64518.html
總體來說,如果做企業(yè)級日志管理分析,我們第一步就需要接入設(shè)備的日志,而大部分的操作系統(tǒng)都是支持syslog的,一般我們對日志這種敏感級別不是很高的信息通過UDP的形式從客戶機(jī)發(fā)送到syslog接收服務(wù)器,syslog我們一般不會主動去采集,而是當(dāng)客戶機(jī)上有操作時(shí)產(chǎn)生的日志會自動發(fā)送到syslog接收服務(wù)器。下面是一個(gè)接收syslog的例子。 package com.tony.util; impor...
摘要:給出的日志等級順序就是記錄最小到最嚴(yán)謹(jǐn)?shù)娜罩镜燃夗樞?。錯(cuò)誤日志格式不支持自定義日志格式但他同樣記錄當(dāng)前時(shí)間日志等級和具體信息等數(shù)據(jù)。日志緩沖區(qū)當(dāng)系統(tǒng)處于負(fù)載狀態(tài)時(shí),啟用日志緩沖區(qū)以降低進(jìn)程阻塞。 原文鏈接: 何曉東 博客 如果想統(tǒng)計(jì)網(wǎng)站的訪問來源信息,可以用 php 獲取信息,記錄到數(shù)據(jù)庫的形式,也可以直接使用 nginx 提供的訪問日志,來記錄網(wǎng)站的訪問詳情,管理員可以通過分析 ng...
摘要:給出的日志等級順序就是記錄最小到最嚴(yán)謹(jǐn)?shù)娜罩镜燃夗樞?。錯(cuò)誤日志格式不支持自定義日志格式但他同樣記錄當(dāng)前時(shí)間日志等級和具體信息等數(shù)據(jù)。日志緩沖區(qū)當(dāng)系統(tǒng)處于負(fù)載狀態(tài)時(shí),啟用日志緩沖區(qū)以降低進(jìn)程阻塞。 原文鏈接: 何曉東 博客 如果想統(tǒng)計(jì)網(wǎng)站的訪問來源信息,可以用 php 獲取信息,記錄到數(shù)據(jù)庫的形式,也可以直接使用 nginx 提供的訪問日志,來記錄網(wǎng)站的訪問詳情,管理員可以通過分析 ng...
閱讀 992·2021-11-23 09:51
閱讀 2705·2021-08-23 09:44
閱讀 668·2019-08-30 15:54
閱讀 1440·2019-08-30 13:53
閱讀 3116·2019-08-29 16:54
閱讀 2533·2019-08-29 16:26
閱讀 1200·2019-08-29 13:04
閱讀 2327·2019-08-26 13:50