以下是详细讲解“log4j2 项目日志组件的实例代码”的完整攻略。
什么是log4j2
log4j2是一个Java日志框架,可以提供高效灵活的日志记录服务,供各种Java应用程序使用。它是Apache软件基金会下的一个开源项目,其具备下列特点:
- 多种输出方式:文件、控制台、数据库等
- 丰富的API:易于使用、易于扩展
- 完善的日志级别:支持丰富的日志级别,能够控制日志输出的详细程度
log4j2 实例
下面介绍两个示例来使用log4j2日志框架。
示例1:输出日志到控制台和文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %L - %m%n"/>
</Console>
<File name="MyFile" fileName="my.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %L - %m%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
上述配置文件定义了两个Appender,一个输出到控制台,一个写入文件my.log。同时也定义了一个Root Logger,指定了日志输出的级别为debug,同时引用了两个Appender。
使用log4j2框架的Java代码示例如下:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyClass {
static final Logger logger = LogManager.getLogger(MyClass.class.getName());
public static void main(String[] args) {
logger.trace("This is a TRACE message.");
logger.debug("This is a DEBUG message.");
logger.info("This is an INFO message.");
logger.warn("This is a WARN message.");
logger.error("This is an ERROR message.");
logger.fatal("This is a FATAL message.");
}
}
输出如下:
2016-09-06 12:19:54.112 [INFO ] 12 - This is an INFO message.
2016-09-06 12:19:54.112 [WARN ] 13 - This is a WARN message.
2016-09-06 12:19:54.113 [ERROR] 14 - This is an ERROR message.
2016-09-06 12:19:54.113 [FATAL] 15 - This is a FATAL message.
可以看到,输出中记录了日志级别、行号、时间、日志信息等内容。
示例2:使用特定的Appender
如果我们需要使用特定的Appender,比如SmtpAppender,我们可以通过如下方式进行配置。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Smtp name="smtp" subject="Error report" to="me@myself.com" from="sender@server.com" smtpHostName="smtp.mailserver.com" smtpPort="25" smtpProtocol="smtp" smtpUsername="username" smtpPassword="password">
<PatternLayout pattern="%d %p %C{1.} [%t] %m%n"/>
</Smtp>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="smtp"/>
</Root>
</Loggers>
</Configuration>
上述配置了一个Smtp Appender,将日志信息发送到指定的邮箱。
使用log4j2框架的Java代码示例如下:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyClass {
static final Logger logger = LogManager.getLogger(MyClass.class.getName());
public static void main(String[] args) {
try {
int a = 10 / 0;
} catch (Exception e) {
logger.error("Exception occurred while performing division", e);
}
}
}
输出如下:
ERROR smtp MyClass [main] Exception occurred while performing division
java.lang.ArithmeticException: / by zero
at MyClass.main(MyClass.java:8)
可以看到,在日志信息中包含了异常信息。
以上就是log4j2 项目日志组件的实例代码的完整攻略,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:log4j2 项目日志组件的实例代码 - Python技术站