簡體   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