[英]How to write to OS system log in Java?
Mac OS有一个名为Console的应用程序,它包含记录的消息,错误和错误。 我相信Windows等效的是事件查看器。 我想在Linux上也有一个,但我不知道它或它在哪里。
是否有可能从Java输出获取消息到这样的系统日志? 我正在编写一个基于GUI的应用程序,因此命令行中没有任何内容。 在这种情况下,标准的System.out
或System.err
可能没什么用,除非我遗漏了什么。
我为我的应用程序编写了一个简单的日志记录服务,写入专用的日志文件,但是我想在尝试写入此文件时发生I / O错误时遇到某种故障保护。
我知道IDE会通过System.out
和System.err
显示输出就好了,但这是因为如果最终用户遇到这样的问题。
举个例子:我为Mac上的应用程序TextWrangler编写了“无代码语言模块”。 TW在应用程序启动时读取这些模块,如果在处理它们时出错,则会记录错误并可在Mac控制台应用程序中查看。
您可以将System.out重定向到日志文件,Mac的控制台应用程序是以“.log”结尾的文件的默认查看器。
通常这样做的一种方法是使用一个可以调用Java程序的shell脚本。 在这个Java 7示例中,调用主类MyClass的输出被重定向到mylogfile.log。 使用System.out编写的所有内容都将在mylogfile.log中。
#!/bin/bash
for a in /path/to/my/jars/*
do
CLASSPATH=$CLASSPATH:$a
done
java -Xms128M -Xmx128M -XX:MaxPermSize=128M -cp ${CLASSPATH} com.example.package.MyClass >> mylogfile.log
在Linux上,它被称为syslog。 在Mac上实现登录到控制台的一种方法是使用log4j'org.apache.log4j.net.SyslogAppender'。
我认为这个链接应该会给你这方面的一些启动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.