繁体   English   中英

如何用Java编写OS系统日志?

[英]How to write to OS system log in Java?

Mac OS有一个名为Console的应用程序,它包含记录的消息,错误和错误。 我相信Windows等效的是事件查看器。 我想在Linux上也有一个,但我不知道它或它在哪里。

是否有可能从Java输出获取消息到这样的系统日志? 我正在编写一个基于GUI的应用程序,因此命令行中没有任何内容。 在这种情况下,标准的System.outSystem.err可能没什么用,除非我遗漏了什么。

我为我的应用程序编写了一个简单的日志记录服务,写入专用的日志文件,但是我想在尝试写入此文件时发生I / O错误时遇到某种故障保护。

我知道IDE会通过System.outSystem.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM