0
public class MyUtil {

    public static boolean showLogging;
    public static boolean saveLogging;

public static void log(Object s) {
        if (showLogging) {
            // show logging on console
        }
        if (saveLogging) {
            // save logging to file and append logging old file when it is created
        }
}
}

これが私の現在の考えです。log4j について聞いたことがありますが、私には複雑すぎます。

したがって、コンソールにログを出力し、ユーザー構成に基づいてファイルに書き込むのが簡単なものが欲しいだけです。

4

2 に答える 2

1

JDK に付属するものなどのロギング フレームワークを使用し、両方の場所にログを記録するように構成します。これらの問題を解決します。

log4j のようなフレームワークが普及しているため、ほとんどの人はそれを標準化し、同じロギング フレームワークを使用して、すべてが同じ場所に行くようにしています。(つまり、既に log4j を使用しているサードパーティのライブラリを使用しています)。

これらのフレームワークがどのように機能するかを把握するために、以下を参照してください (ほとんどのフレームワークは似ています): http://logging.apache.org/log4j/1.2/manual.html

このドキュメントを少し下にスクロールして、実際の例を確認してください

于 2012-05-18T23:31:42.567 に答える
0

log4j を使用する

最初に、次のようにコンソールとファイルの両方のアペンダーを定義する log4j.xml を定義します。

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
        </layout>
    </appender>
    <appender name="Daily" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="logs/sample.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] - %m%n%n%n" />
        </layout>
    </appender>
    <root>
        <appender-ref ref="CA" />
        <appender-ref ref="Daily" />
    </root>
</log4j:configuration>

このxmlファイルをクラスパスに配置します...また、log4jをクラスパスに保持します

サンプルコードは次のとおりです。

パッケージ com.vanilla.helloworld;

org.apache.log4j.* をインポートします。

public class HelloWorld 
{
    static final Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) throws InterruptedException
    {

        logger.info("I am going to log to file as well as console");

    }

}
于 2012-05-20T10:24:56.817 に答える