如何在控制台上和文件上进行Java日志记录?
这是我目前的想法。 我听说过log4j,但对我来说太复杂了如何在控制台上和文件上进行Java日志记录?,java,logging,Java,Logging,这是我目前的想法。 我听说过log4j,但对我来说太复杂了 所以我只想要一些简单的东西,可以在控制台上打印日志,也可以根据用户配置将其写入文件 使用一个日志框架,比如JDK中的日志框架,并将其配置为登录到两个位置。他们为你解决这些问题 由于像log4j这样的框架的流行,大多数人将其标准化,并使用相同的日志框架,所以所有的东西都放在同一个地方。(即,他们使用已经在使用log4j的第三方库) 下面是一些您可能想要了解这些框架如何工作的内容(大多数类似): 在本文档中向下滚动一点,查看一些实际示例使
所以我只想要一些简单的东西,可以在控制台上打印日志,也可以根据用户配置将其写入文件 使用一个日志框架,比如JDK中的日志框架,并将其配置为登录到两个位置。他们为你解决这些问题 由于像log4j这样的框架的流行,大多数人将其标准化,并使用相同的日志框架,所以所有的东西都放在同一个地方。(即,他们使用已经在使用log4j的第三方库) 下面是一些您可能想要了解这些框架如何工作的内容(大多数类似): 在本文档中向下滚动一点,查看一些实际示例使用log4j 首先定义log4j.xml,它定义控制台和文件附加器,如下所示:
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很复杂,那么即使建议您基于java日志编写自己的日志处理程序也会非常麻烦,因此,继续使用if-else语句编写自己的日志功能,特别是当您想写入文件时,将比学习使用Log4j更加困难。任何其他解决方案都将比使用已经完成工作的库更加复杂。
<!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>
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");
}
}