
次のようなLOG4jの設定ファイルからログレベルを取得したいのですが
うまく取得できません。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- 一般ログファイル出力 -->
<appender name="LogFile" class="org.apache.log4j.FileAppender">
<param name="File" value="c:/TestLog4j.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %m (%F:%L) %c[%t]%n"/>
</layout>
</appender>
<!-- 一般ログ出力設定 -->
<logger name="clip">
<level value="DEBUG"/>
<appender-ref ref="LogFile"/>
</logger>
</log4j:configuration>
JAVAのソースは
//ログ4j設定ファイル読み込み
DOMConfigurator.configure("c:/log4j.xml");
//ロガーの取得
Logger batchLog = Logger.getLogger(getClass());
//テストログの出力
batchLog.fatal("テスト");
//ログレベルの取得
Level logLevel = batchLog.getLevel();
System.out.println(logLevel); // 結果:null
System.out.println(logLevel.toString()); // NullPointerExceptionでエラー
テストログは出力できるのですが、ログレベルの取得で
エラーになってしまいます。
log4jの設定ファイルからログレベルを取得するにはどうすれば
良いのでしょうか?
No.1ベストアンサー
- 回答日時:
<!-- 一般ログ出力設定 -->
<logger name="clip">
> Logger batchLog = Logger.getLogger(getClass());
呼び出し側JAVAのクラス名が`clip`になっていない為
NullPointerExceptionが出ていると思われます。
JAVAでのLOGGER、CATEGORYの指定方法の誤りです。
Logger#getLoggerの引数には、クラスも指定できますが、
個人的には文字列を指定した方がやりやすいかな…と。
▼以下、LOG4J 1.2.13にて確認済み
ちなみに、log4j.xml をこのように記述した場合
----------------------------------------
<logger name="SYSTEM">
<level value="DEBUG"/>
<appender-ref ref="LogFile"/>
</logger>
----------------------------------------
または
----------------------------------------
<category name="SYSTEM">
<priority value="DEBUG" />
<appender-ref ref="LogFile"/>
</category>
----------------------------------------
JavaでLoggerを取得する際こんな感じに引数を指定すれば、
普通にgetLevel()が使用できると思います。
Logger batchLog = Logger.getLogger("SYSTEM");
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Spreadでの複数行選択
-
ActiveReportのDataSourceについて
-
EXCEL VBAで、EXCELの入力規則...
-
スプレッドのアクティブセルの...
-
Formatでmmが月と分を意味する理由
-
getTableCellRendererComponent...
-
三菱GOTの画面切り替えについて
-
リクエストに応じたselectedの...
-
jspからServletを呼び、元のjsp...
-
ボタンが活性化の場合とは、ボ...
-
JSPからJSPへ情報を渡せる?
-
Java-jspの画面入力値保持について
-
フォームで同じ複数のnameで違...
-
webアプリを作ってます。エラー...
-
グローバルIPアドレスの変更タ...
-
フォーム上で押されたボタンに...
-
JSPでsession変数が勝手に書き...
-
VB6 開発環境のエディタに行...
-
Formのデータが欠落することがある
-
Seaser2のフォルダ構成について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBAで、EXCELの入力規則...
-
ActiveReportのDataSourceについて
-
Formatでmmが月と分を意味する理由
-
jsp 動的テーブルについて
-
Excelで可視セルの行番号取得
-
ActiveWorkbook.Pathの一つ下の...
-
javascriptでIMEの状態を取得
-
登録済みイベントリスナーの情...
-
スプレッドのアクティブセルの...
-
GetWindowTextについて
-
漢字読み取得方法
-
java → jsp コンボボックス表示...
-
Androidアプリにて標高を取得す...
-
データグリッドでの日本語入力方法
-
javaを使い、jsonデータを取得...
-
HSPでHTMLのタグのパラメーター...
-
WebBrowserに表示されているペ...
-
JAVA と JSPの ArrayListのやり...
-
javascriptでローカルフォルダ...
-
C# datagridview 行の取得
おすすめ情報