[英]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.