`

log4j自定义级别

 
阅读更多

要自定义一个级别,首先我们先来看一下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自定义错误级别配置demo

    在项目的配置文件(通常是`log4j.properties`或`log4j.xml`)中,需要定义这些自定义级别的输出目的地和格式,这样日志处理器才能正确地处理并记录这些级别的信息。 5. **在代码中使用**: 最后,应用程序中的...

    log4j自定义日志文件名及日志输出格式

    当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先,让我们深入理解如何自定义日志文件名。默认情况下,Log4j的日志文件名通常是固定的或者基于时间戳生成...

    动态设置log4j的日志级别

    本文将详细讲解如何动态设置Log4j的日志级别,以满足不同场景下的需求。 首先,我们要理解日志级别的概念。Log4j提供了多个日志级别,从低到高依次为:DEBUG、INFO、WARN、ERROR和FATAL。不同的日志级别用于记录...

    log4j自定义

    《深入理解Log4j自定义》 在Java开发中,日志系统扮演着至关重要的角色,它能够帮助我们记录程序运行过程中的各种信息,便于调试、监控和问题排查。Log4j作为一款广泛使用的日志框架,其强大的可配置性和自定义能力...

    Log4net自定义信息(变量或属性或字段)存入数据库

    本主题聚焦于如何利用Log4net将自定义信息,如变量、属性或字段,存储到数据库中,这对于监控应用状态、分析错误和追踪性能异常至关重要。 首先,Log4net提供了一个灵活的配置机制,允许开发者通过XML配置文件或...

    log4j(三):配置文件属性解释、级别、布局、参数设置等

    本文将深入解析Log4j的配置文件属性、日志级别、布局方式以及参数设置等核心知识点,帮助你更好地理解和利用这个强大的工具。 一、配置文件属性解释 Log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,它...

    log4j输出多个自定义路径的日志文件小例子

    要实现输出多个自定义路径的日志文件,我们需要在Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)中定义多个Appender。Appender是Log4j中负责将日志信息输出到指定目的地的组件,例如文件、控制台、网络...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...

    log4j-jsonlayout

    Log4j是Apache组织开发的一个开源日志框架,广泛应用于Java环境,提供灵活的日志记录控制,允许开发者根据需要调整日志级别,定制日志格式,以及将日志信息输出到各种目的地。 **JSONLayout介绍** JSONLayout是Log...

    Log4j2简介及与Log4j效率对比

    6. **自定义日志级别**:除了内置的日志级别(如DEBUG、INFO、WARN、ERROR、FATAL),Log4j2还支持用户自定义的日志级别,可以通过代码或配置文件进行定义。 7. **消息对象支持**:用户可以创建自定义的消息类型,...

    自定义异常和log4j的使用

    本文将详细讲解如何实现自定义异常以及如何有效地利用Log4j进行日志管理。 首先,让我们来了解自定义异常。在Java中,当我们遇到特定的业务逻辑错误或需要更精确地捕获和处理错误时,我们可以创建自定义异常。...

    使用log4j2实现日志数据脱敏

    Log4j2支持多种日志记录级别(如DEBUG、INFO、WARN、ERROR),并允许通过XML、JSON、YAML或纯Java配置文件进行灵活配置。 二、日志数据脱敏概念 日志数据脱敏是指在不影响日志分析的前提下,对敏感信息进行替换、...

    log4j-api-2.12.4.ja和log4j-core-2.12.4.jar

    配置Log4j通常通过一个XML或JSON格式的配置文件完成,例如`log4j2.xml`或`log4j2.json`,这个文件定义了日志的输出级别、目的地(如控制台、文件、数据库等)以及格式。 总的来说,Log4j 2是Java开发中不可或缺的...

    SpringBoot框架配置log4j和log4j2的配置代码

    2. **配置文件**:创建`log4j.properties`或`log4j.xml`文件,定义日志级别和输出目的地。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache....

    Log4j按级别输出日志到不同文件的实现方法

    在本文中,我们将详细介绍如何配置Log4j以按级别将日志输出到不同的文件。 首先,我们要明白Log4j的核心配置文件是`log4j.properties`或`log4j.xml`,在这里定义了日志的行为。以下是一个基于文本配置(`log4j....

    log4j-API-最新稳定版本log4j-1.2.17

    1. **日志级别**:Log4j API支持多个日志级别,如DEBUG、INFO、WARN、ERROR和FATAL。这些级别允许开发者根据需要过滤不同严重程度的消息。 2. **日志器(Logger)**:每个日志器代表一个特定的命名空间,用于记录...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    例如,`org.apache.logging.log4j.core.appender.ConsoleAppender`用于将日志输出到控制台,而`org.apache.logging.log4j.core.layout.PatternLayout`则可以按照自定义的模式格式化日志信息。 Log4j2的亮点之一是其...

    Java 日志记录 log4j 最简明教程

    此外,log4j还支持过滤、异步日志、自定义Appender和Layout等功能,可以根据实际需求进行配置和扩展。例如,你可以创建一个文件Appender,将日志写入文件,或者设置Filter来控制哪些日志消息会被记录。 总的来说,...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    **日志框架Log4j详解** Log4j是Apache组织提供的一款开源的日志记录框架,广泛应用于Java应用程序中。在给定的压缩包文件中,包含的是Log4j的1.2.17版本,这是一个相对较为老旧但仍然被许多项目使用的版本。此版本...

    tomcat下的log4j日志配置

    2. **编写初始化 Servlet**:创建一个自定义的 Servlet 来初始化 Log4j。该 Servlet 的主要任务是在启动时加载特定的 `log4j.properties` 文件。 ```java public class Log4jInitServlet extends HttpServlet { ...

Global site tag (gtag.js) - Google Analytics