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,它定义了控制台和文件 appender,如下所示:

<!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 回答