4

これはそれほど複雑ではありません... netbeans のデフォルトのログレベルを変更します。

英語は母国語ではありませんが、今まで英語をよく理解していると思っていました。私が読んだすべての投稿には、シンプルで簡単に変更できると記載されています...しかし、どうにかして変更することはできません。デフォルトでは、netbeans は INFO レベルでロギングを開始します。FINESTまで下げようとしています。

私は小さな POC を行い、まったく新しい Java アプリケーションを開始しました。

package javaapplication16;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;

public class JavaApplication16 {

    private static final Logger logger = Logger.getLogger(JavaApplication16.class.getName());

    public static void main(String[] args) {        
        logger.log(Level.INFO, "hello!");
    }
}

それは正常に動作します。"こんにちは!" netbeans 出力ウィンドウに出力されます。より高いレベル (WARNING、SEVERE) でも機能します。

しかし、それを FINE (またはその他の下位レベル) に変更すると、うまくいきませんでした。

私はインターネットで見つけたすべてをしました。

メインに変更しました

System.setProperty("javaapplication16.level", "100");
System.setProperty("javaapplication16.JavaApplication16", "100");
System.setProperty("java.util.logging.ConsoleHandler.level", "100");
try {
    LogManager.getLogManager().readConfiguration();
} catch (IOException | SecurityException ex) {
    logger.log(Level.SEVERE, null, ex);
}

logger.log(Level.FINE, "hello!");

netbeans.conf を変更し、-J-Djavaapplication16.level=100(およびその他) を追加しました。アプリのルートレベルなどでlogging.propertiesを作成しました...単独でも組み合わせても機能しませんでした。

私が間違っていることを指摘してください。

私の環境は次のとおりです。

Product Version: NetBeans IDE 7.2 (Build 201207171143)
Java: 1.7.0_07; Java HotSpot(TM) 64-Bit Server VM 23.3-b01
System: Mac OS X version 10.8.2 running on x86_64; US-ASCII; en_US (nb)

役に立つと思ったが、うまくいかなかった投稿:

4

3 に答える 3

2

私は同じ問題に遭遇しました...私の解決策(最終的に)は、ロギング構成ファイルを作成することでした:

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL

プロジェクト実行オプションに設定します。

>Project
>Properties
>Run
>VM Options: -Djava.util.logging.config.file=/home/myuser/logging.properties

プロパティファイルへの絶対パスに注意してください。実行中のクラスパスからロードできなかったので(デフォルトのプロジェクトフォルダー、デフォルトのパッケージ化、パッケージ内で...何も試していません)、おそらくそれはあなたがしようとしていたときに起こっていました現在のクラスパスがどこにあるかを正しく判断するのが難しい場合があるため、プロパティ ファイルをロードします。私はこのスレッドに基づいて解決しました。Netbeans バージョン 7.2 および JDK jdk1.7.0_21。

于 2014-07-19T00:01:55.697 に答える
0
 System.setProperty("java.util.logging.ConsoleHandler.level", "FINER");

同等の数値ではなく、レベルを表す文字列を使用する必要があります。その行は、JUL を使用して作業コードからコピー アンド ペーストされます。それ以来、log4jは Java でのロギングにはるかに適したフレームワークであることがわかりました。

于 2012-11-13T14:26:54.083 に答える