■ サンプル
LogLevel.java
public enum LogLevel {
// エラー イベント。
// ユーザーに知らせる必要がある重大な問題を示します。
// 通常は、機能またはデータの損失です。
Error("ERROR"),
// 警告イベント。
// 緊急を要する問題ではありませんが、今後問題の原因となりうることを示します。
Warning("WARNING"),
// 情報イベント。
// 有効で成功した操作を示します。
Information("INFORMATION");
private String logLevelName;
private LogLevel(String logLevelName) {
this.logLevelName = logLevelName;
}
public String toText() {
return this.logLevelName;
}
}
EventLogType.java
public enum EventLogType {
// システムログ
System("SYSTEM"),
// アプリケーションログ
Application("APPLICATION");
private String logTypeName;
private EventLogType(String logTypeName) {
this.logTypeName = logTypeName;
}
public String toText() {
return this.logTypeName;
}
}
Logger本体
EventLogger.java
public class EventLogger {
private static final String EventLogFormat =
"eventcreate /ID %d /L %s /SO %s /T %s /D \"%s\"";
public static void writeEventLog(
EventLogType eventLogType,
LogLevel logLevel,
int eventId,
String source,
String message,
Object... parmeters) {
if (eventId < 1 || eventId > 1000) {
throw new IllegalArgumentException("eventId range must be 1-1000");
}
try {
String messageContent;
if (parmeters != null) {
messageContent = String.format(message, parmeters);
} else {
messageContent = message;
}
String commandForEventLog =
String.format(
EventLogger.EventLogFormat,
eventId,
eventLogType.toText(),
source,
logLevel.toText(),
messageContent);
Runtime.getRuntime().exec(commandForEventLog);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
使用例
Main.java
public class Main {
public static void main(String[] args) {
System.out.println("Start");
EventLogger.writeEventLog(
EventLogType.Application, LogLevel.Error, 100, "MyLogEx1", "Hellow World!");
EventLogger.writeEventLog(
EventLogType.System, LogLevel.Information, 200, "MyLogEx2", "Hellow %s!!", "World");
EventLogger.writeEventLog(
EventLogType.Application, LogLevel.Warning, 300, "MyLogEx3", "%s %s!!!", "Hellow", "World");
System.out.println("End");
}
■ 確認
[1] [スタート]-[ファイル名を指定して実行]を選択
[2] [名前]欄に「eventvwr」と入力して、[OK]ボタンをクリック