Mac OS有一个名为Console的应用程序,它包含已记录的消息,错误和错误。我相信Windows等效的是事件查看器。我想象在Linux上也有一个,但我不知道它或它在哪里。
是否可以从Java输出获取消息到这样的系统日志?我正在编写基于GUI的应用程序,因此命令行中没有任何内容。在这种情况下,标准System.out
或System.err
可能不会有多大用处,除非我遗漏了某些内容。
我为我的应用程序编写了一个简单的日志记录服务,该服务写入专用的日志文件,但我想在尝试写入此文件时发生I / O错误时遇到某种故障保护。
我知道IDE会通过System.out
和System.err
显示输出就好了,但这是因为如果最终用户遇到这样的问题。
作为一个例子:我已经写过"无代码语言模块"对于Mac上的应用程序TextWrangler。这些模块在应用程序启动时由TW读取,如果在处理它们时出错,则会记录错误并可在Mac控制台应用程序中查看。
答案 0 :(得分:1)
您可以将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
答案 1 :(得分:1)
在Linux上,它被称为syslog。在Mac上实现登录到控制台的一种方法是使用log4j' org.apache.log4j.net.SyslogAppender'。
我认为this link应该在这方面给你一些启动。