首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java等效于python syslog.syslog()

java等效于python syslog.syslog()
EN

Stack Overflow用户
提问于 2013-08-13 21:26:44
回答 3查看 360关注 0票数 1

在python中,登录到syslog相当简单:

代码语言:javascript
复制
syslog.openlog("ident")
syslog.syslog(0, "spilled beer on server")
syslog.closelog()

在Java中有一种相当简单的方法吗?在进行了相当多的googling搜索之后,我一直无法找到一个简单易懂的方法,它不需要重新配置rsyAdd.1-d或syAdd.1-d。如果没有对应的内容,那么登录到syslog的最简单方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-16 00:01:14

没有udp的直接访问日志的一种方法是使用syslog4j。我不一定会说它很简单,但至少不需要重新配置syslog。

票数 1
EN

Stack Overflow用户

发布于 2013-08-13 21:28:32

我能想到的最接近的方法是使用Log4J并配置SyslogAppender,以便将其写入syslog。对不起,这不像Python那么容易!

票数 1
EN

Stack Overflow用户

发布于 2014-07-22 16:51:20

这是我能想到的最简单的客户端代码:

代码语言:javascript
复制
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

// java Syslog localhost "Hello world"
public class Syslog {
  public static void main(String[] args) throws Exception {
    InetAddress address = InetAddress.getByName(args[0]);
    byte[] bytes = args[1].getBytes();
    DatagramSocket socket = new DatagramSocket();
    try {
      DatagramPacket data = new DatagramPacket(bytes, bytes.length, address, 514);
      socket.send(data);
    } finally {
      socket.close();
    }
  }
}

和服务器(syAdd.1-d):

代码语言:javascript
复制
import java.net.DatagramPacket;
import java.net.DatagramSocket;

// java SyslogD
public class SyslogD {
  public static void main(String[] args) throws Exception {
    DatagramSocket socket = new DatagramSocket(514);
    try {
      for(;;) {
        DatagramPacket data = new DatagramPacket(new byte[4096], 4096);
        socket.receive(data);
        System.out.println("[" + data.getAddress().toString() + "] " + new String(data.getData(),0,data.getLength()));
      }
    } finally {
      socket.close();
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18219529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档