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,但对我来说太复杂了。
所以我只想要一些在控制台上打印日志的简单方法,并根据用户配置将其写入文件。
答案 0 :(得分:1)
使用日志框架(例如JDK中的日志框架),并将其配置为记录到这两个位置。他们为您解决了这些问题。
由于像log4j这样的框架很普遍,大多数人都会对此进行标准化并使用相同的日志记录框架,因此所有内容都会转到同一个地方。 (即,他们使用已经使用log4j的第三方库。)
以下是您可能想要阅读的内容,以了解这些框架的工作方式(大多数是相似的): http://logging.apache.org/log4j/1.2/manual.html
在本文档中向下滚动一下以查看一些真实示例
答案 1 :(得分: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保留在类路径中
示例代码为:
package com.vanilla.helloworld;
import 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");
}
}