
次のような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で質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptで「My Documents」フ...
-
携帯電話のGPS機能って。
-
JAVA と JSPの ArrayListのやり...
-
Formatでmmが月と分を意味する理由
-
登録済みイベントリスナーの情...
-
Excelで可視セルの行番号取得
-
VBAでTIFF画像を読み込むには?
-
自分のファイル名取得
-
CharAtで第二引数ってあるので...
-
javascriptでIMEの状態を取得
-
strutsで空白を認識させるには?
-
三菱GOTの画面切り替えについて
-
フォルダ改行
-
webアプリを作ってます。エラー...
-
VB.NET DataReaderが開かれている
-
株価や為替レートのリアルタイ...
-
モーダル画面の親をクリック時...
-
私の能力からして間違っていな...
-
ASPとCGIの違い
-
NetworkStreamからのRead()で、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
登録済みイベントリスナーの情...
-
ActiveWorkbook.Pathの一つ下の...
-
VBAでTIFF画像を読み込むには?
-
EXCEL VBAで、EXCELの入力規則...
-
Excelで可視セルの行番号取得
-
Formatでmmが月と分を意味する理由
-
指定地点(緯度・経度)から指定...
-
ActiveReportのDataSourceについて
-
スプレッドのアクティブセルの...
-
strutsで空白を認識させるには?
-
vb上で実行させたコマンドに変...
-
java → jsp コンボボックス表示...
-
自分のファイル名取得
-
log4jでログレベルが取得できな...
-
javascriptでIMEの状態を取得
-
Spreadでの複数行選択
-
outlook vbaについて
-
JAVA と JSPの ArrayListのやり...
-
テキストフィールドの値をほか...
-
画像などの位置を取得するには
おすすめ情報