[解決済み] Level.FINEのロギングメッセージが表示されないのはなぜですか?
質問
その
の JavaDocs
java.util.logging.Level
の状態になります。
レベルを降順に並べると
-
SEVERE
(最高値) -
WARNING
-
INFO
-
CONFIG
-
FINE
-
FINER
-
FINEST
(最低値)
ソース
import java.util.logging.*;
class LoggingLevelsBlunder {
public static void main(String[] args) {
Logger logger = Logger.getAnonymousLogger();
logger.setLevel(Level.FINER);
System.out.println("Logging level is: " + logger.getLevel());
for (int ii=0; ii<3; ii++) {
logger.log(Level.FINE, ii + " " + (ii*ii));
logger.log(Level.INFO, ii + " " + (ii*ii));
}
}
}
出力
Logging level is: FINER
Jun 11, 2011 9:39:23 PM LoggingLevelsBlunder main
INFO: 0 0
Jun 11, 2011 9:39:24 PM LoggingLevelsBlunder main
INFO: 1 1
Jun 11, 2011 9:39:24 PM LoggingLevelsBlunder main
INFO: 2 4
Press any key to continue . . .
問題文
私の例では
Level
を
FINER
というように、各ループに2つのメッセージが表示されると思っていました。 その代わり、各ループに対して1つのメッセージが表示されます(
Level.FINE
のメッセージが消えています)。
質問
を表示するために、何を変更する必要がありますか?
FINE
(,
FINER
または
FINEST
) を出力しますか?
更新(解決)
おかげさまで
Vineet Reynoldsの回答
このバージョンは私の期待通りに動作しています。 それは3つのx
INFO
メッセージ、および 3 x
FINE
のメッセージが表示されます。
import java.util.logging.*;
class LoggingLevelsBlunder {
public static void main(String[] args) {
Logger logger = Logger.getAnonymousLogger();
// LOG this level to the log
logger.setLevel(Level.FINER);
ConsoleHandler handler = new ConsoleHandler();
// PUBLISH this level
handler.setLevel(Level.FINER);
logger.addHandler(handler);
System.out.println("Logging level is: " + logger.getLevel());
for (int ii=0; ii<3; ii++) {
logger.log(Level.FINE, ii + " " + (ii*ii));
logger.log(Level.INFO, ii + " " + (ii*ii));
}
}
}
どのように解決するのですか?
ロガーはメッセージを記録するだけです。つまり、ログレコード(またはロギング要求)を作成します。これはハンドラによって処理されます。ロガーのレベルを設定すると、ロガーは以下のようになります。 作成 ログレコードを作成します。
を使用しているかもしれません。
ConsoleHandler
(出力が System.err かファイルなのか推測できませんでしたが、前者であると仮定します) では、デフォルトでレベル
Level.INFO
. このハンドラを設定して、ログレコードをレベル
Level.FINER
以上のログレコードを発行するように、このハンドラを設定する必要があります。
を読むことをお勧めします。 Javaログの概要 ガイドを読むことをお勧めします。このガイドでは、Logger と Handler の概念の違いについて説明しています。
ハンドラレベルの編集
1. 設定ファイルの使用
java.util.logging のプロパティファイル (デフォルトでは、これは
logging.properties
の中のファイルです。
JRE_HOME/lib
) を修正することで、ConsoleHandler のデフォルトレベルを変更することができます。
java.util.logging.ConsoleHandler.level = FINER
2. 実行時にハンドラを作成する
これは、グローバルな設定を上書きすることになるため、推奨されません。コード ベース全体でこれを使用すると、管理しきれないロガー構成になる可能性があります。
Handler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.FINER);
Logger.getAnonymousLogger().addHandler(consoleHandler);
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
javaの非静的メソッドを静的に参照することができない
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
Java の double データ型における 0.0 と -0.0 の問題
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] List<Dog> は List<Animal> のサブクラスですか?Java のジェネリックはなぜ暗黙のうちに多相性にならないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
プロジェクトの依存関係を解決できない。
-
Jsoup-Crawlingの動作
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
アノテーション「@Retention」の役割
-
java send https request prompt java.security.cert.について。
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。