要自定义一个级别,首先我们先来看一下log4j level类的源码:
public class Level extends Priority
implements Serializable
{
public static final int TRACE_INT = 5000;
public static final Level OFF = new Level(2147483647, "OFF", 0);
public static final Level FATAL = new Level(50000, "FATAL", 0);
public static final Level ERROR = new Level(40000, "ERROR", 3);
public static final Level WARN = new Level(30000, "WARN", 4);
public static final Level INFO = new Level(20000, "INFO", 6);
public static final Level DEBUG = new Level(10000, "DEBUG", 7);
public static final Level TRACE = new Level(5000, "TRACE", 7);
}
从上面可看出, 数值越大,这个级别也就越高。
如:我们现在定义一个级别在 warn和 error 之间。数值定位:30050。
已下是整个类的代码:
public class MailLog {
private static Logger logger = Logger.getLogger(MailLog.class);
private static class SeriousLevel extends Level {
private static final long serialVersionUID = 1076913470822079835L;
private SeriousLevel(int level, String name, int sysLogLevel) {
super(level, name, sysLogLevel);
}
}
private static final Level MAIL_LOG_LEVEL = new SeriousLevel(30050,
"SERIOUS", SyslogAppender.LOG_LOCAL0);
public static void mailLog(Object pm_objLogInfo) {
logger.log(MAIL_LOG_LEVEL, pm_objLogInfo);
logger.debug(pm_objLogInfo);
logger.info(pm_objLogInfo);
}
public static void main(String[] args) {
MailLog log = new MailLog();
log.mailLog("serious ****** ");
}
}
------------------------------ log4j.xml ---------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "../WebRoot/WEB-INF/config/log4j/log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="LOG.EMAIL" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/EMAIL_LOG.log" />
<param name="Append" value="true"/>
<param name="MaxFileSize" value="5120KB" />
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="info" />
</filter>
</appender>
<root>
<appender-ref ref="LOG.EMAIL" />
</root>
</log4j:configuration>
----------------------------------- 结果 -----------------------------------------
12-10-08 14:55:51 [SERIOUS] other.log4j.self.MailLog {MailLog.java:28} - serious ******
12-10-08 14:55:51 [INFO ] other.log4j.self.MailLog {MailLog.java:30} - serious ******
12-10-08 14:55:51 [WARN ] other.log4j.self.MailLog {MailLog.java:31} - serious ******
12-10-08 14:55:51 [ERROR] other.log4j.self.MailLog {MailLog.java:32} - serious ******
--------------------------------------------------------------
相关推荐
在项目的配置文件(通常是`log4j.properties`或`log4j.xml`)中,需要定义这些自定义级别的输出目的地和格式,这样日志处理器才能正确地处理并记录这些级别的信息。 5. **在代码中使用**: 最后,应用程序中的...
当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先,让我们深入理解如何自定义日志文件名。默认情况下,Log4j的日志文件名通常是固定的或者基于时间戳生成...
本文将详细讲解如何动态设置Log4j的日志级别,以满足不同场景下的需求。 首先,我们要理解日志级别的概念。Log4j提供了多个日志级别,从低到高依次为:DEBUG、INFO、WARN、ERROR和FATAL。不同的日志级别用于记录...
《深入理解Log4j自定义》 在Java开发中,日志系统扮演着至关重要的角色,它能够帮助我们记录程序运行过程中的各种信息,便于调试、监控和问题排查。Log4j作为一款广泛使用的日志框架,其强大的可配置性和自定义能力...
本主题聚焦于如何利用Log4net将自定义信息,如变量、属性或字段,存储到数据库中,这对于监控应用状态、分析错误和追踪性能异常至关重要。 首先,Log4net提供了一个灵活的配置机制,允许开发者通过XML配置文件或...
本文将深入解析Log4j的配置文件属性、日志级别、布局方式以及参数设置等核心知识点,帮助你更好地理解和利用这个强大的工具。 一、配置文件属性解释 Log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,它...
要实现输出多个自定义路径的日志文件,我们需要在Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)中定义多个Appender。Appender是Log4j中负责将日志信息输出到指定目的地的组件,例如文件、控制台、网络...
总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...
Log4j是Apache组织开发的一个开源日志框架,广泛应用于Java环境,提供灵活的日志记录控制,允许开发者根据需要调整日志级别,定制日志格式,以及将日志信息输出到各种目的地。 **JSONLayout介绍** JSONLayout是Log...
6. **自定义日志级别**:除了内置的日志级别(如DEBUG、INFO、WARN、ERROR、FATAL),Log4j2还支持用户自定义的日志级别,可以通过代码或配置文件进行定义。 7. **消息对象支持**:用户可以创建自定义的消息类型,...
本文将详细讲解如何实现自定义异常以及如何有效地利用Log4j进行日志管理。 首先,让我们来了解自定义异常。在Java中,当我们遇到特定的业务逻辑错误或需要更精确地捕获和处理错误时,我们可以创建自定义异常。...
配置Log4j通常通过一个XML或JSON格式的配置文件完成,例如`log4j2.xml`或`log4j2.json`,这个文件定义了日志的输出级别、目的地(如控制台、文件、数据库等)以及格式。 总的来说,Log4j 2是Java开发中不可或缺的...
2. **配置文件**:创建`log4j.properties`或`log4j.xml`文件,定义日志级别和输出目的地。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache....
Log4j2支持多种日志记录级别(如DEBUG、INFO、WARN、ERROR),并允许通过XML、JSON、YAML或纯Java配置文件进行灵活配置。 二、日志数据脱敏概念 日志数据脱敏是指在不影响日志分析的前提下,对敏感信息进行替换、...
在本文中,我们将详细介绍如何配置Log4j以按级别将日志输出到不同的文件。 首先,我们要明白Log4j的核心配置文件是`log4j.properties`或`log4j.xml`,在这里定义了日志的行为。以下是一个基于文本配置(`log4j....
1. **日志级别**:Log4j API支持多个日志级别,如DEBUG、INFO、WARN、ERROR和FATAL。这些级别允许开发者根据需要过滤不同严重程度的消息。 2. **日志器(Logger)**:每个日志器代表一个特定的命名空间,用于记录...
**日志框架Log4j详解** Log4j是Apache组织提供的一款开源的日志记录框架,广泛应用于Java应用程序中。在给定的压缩包文件中,包含的是Log4j的1.2.17版本,这是一个相对较为老旧但仍然被许多项目使用的版本。此版本...
例如,`org.apache.logging.log4j.core.appender.ConsoleAppender`用于将日志输出到控制台,而`org.apache.logging.log4j.core.layout.PatternLayout`则可以按照自定义的模式格式化日志信息。 Log4j2的亮点之一是其...
通过使用Log4j,开发者可以轻松地切换日志级别,以适应开发、测试和生产环境的不同需求。 2. **log4j.properties**:这是一个配置文件,用于定制Log4j的行为。在这个文件中,你可以设置日志级别,指定哪些类或包的...
此外,log4j还支持过滤、异步日志、自定义Appender和Layout等功能,可以根据实际需求进行配置和扩展。例如,你可以创建一个文件Appender,将日志写入文件,或者设置Filter来控制哪些日志消息会被记录。 总的来说,...