Spring集成Log4j日志框架

1.日志系统介绍

slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。简答的讲就是slf4j是一系列的日志接口,而log4j是具体实现了的日志框架

slf4j与常用日志框架绑定关系,图片来源

2.Maven导入slf4j和log4j,编辑pom.xml

<!-- 导入slf4j-log4j12,依赖slf4j-api和log4j,自动导入 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>

3.log4j日志框架配置,编辑log4j.xml

log4j的xml配置方式基本步骤有3个,第一步:配置appender;第二步:配置logger;第三步:配置root。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- 输出信息到控制台,用于开发调试 -->
    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] (%F:%L) - %m%n"/>
        </layout>
        <!-- 日志过滤条件,输出哪些日志 -->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- OFF FATAL ERROR WARN INFO DEBUG TRACE ALL -->
            <param name="levelMin" value="debug"/>
            <param name="levelMax" value="fatal"/>
            <param name="AcceptOnMatch" value="true"/>
        </filter>
    </appender>

    <!-- 输出信息到文件,每天产生一个日志文件 -->
    <appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${catalina.base}/logs/log4j.log"/>
        <param name="Append" value="true"/>
        <!-- 日志输出的最低等级 -->
        <param name="Threshold" value="debug"/>
        <param name="MaxFileSize" value="100MB"/>
        <param name="MaxBackupIndex" value="10"/>
        <param name="DatePattern" value="‘.‘yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] (%F:%L) - %m%n"/>
        </layout>
    </appender>

    <!-- 日志记录器 -->
    <logger name="com.learn.spring.server" additivity="false">
        <!-- Logger中定义的level和appender中的filter定义的level的区间取交集 -->
        <level value="INFO"/>
        <!-- 默认作用于所有的appender -->
        <appender-ref ref="myConsole"/>
        <appender-ref ref="myFile"/>
    </logger>

    <root>
        <priority value="ALL"/>
        <appender-ref ref="myConsole"/>
    </root>
</log4j:configuration>

4.日志信息格式中的符号含义

%p: 输出日志信息优先级,即TRACE,DEBUG,INFO,WARN,ERROR,FATAL
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
时间: 2024-12-24 06:50:53

Spring集成Log4j日志框架的相关文章

【spring boot】8.spring boot的日志框架使用

在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. ============================================================================================= 简介:spring boot的默认日志框架Logback SLF4J--Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象.Java日志框架众多--常用的有

asp.net core 集成 log4net 日志框架

原文:asp.net core 集成 log4net 日志框架 asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 LoggerProvider 的话就需要借助第三方日志框架实现了,而一些第三方框架的实现大多比较完善和成熟,不失为一个好办法. 自己写了一个 log4net 的扩展 WeihanLi.Common.Logging.Log4Net,提供了在 .n

spring集成Log4j以及log4j配置简要说明

Spring集成: web.xml中配置log4j <context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/log4j.xml</param-value></context-param> <!-- 加载Spring框架中的log4j监听器Log4jConfigListener --><listener>

SSH集成log4j日志环境

第一步:在web.xml初始化log4j <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <context-param> <param-name>log4jConfigLocatio

Spring整合log4j日志组件(转)

Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台.文件.数据库.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的信息内容和信息输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程:甚至还可以在不需要修改业务逻辑代码.重启web服务,只需要通过一个修改配置文件就可以实现控制项目的日志动作. 首先,日志的级别有:OFF .FATAL .ERROR.WARN.INFO.

spring集成 log4j + slf4j

以maven web项目为例, 首先.在pom文件引入相关依赖,如下(spring官网文档有介绍): <dependencies> <!-- spring 相关 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency>

Spring Boot + Log4j2 日志框架配置 (Maven)

参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志, 还包括适当的Logback路由, 确保其他的日志框架(Java Util Logging, Commons Logging, Log4j, SLF4J)都能正常使用 Sping Boot文档的 26.5 Custom Log Configuration 章节,说明了自定义日志配置方法 多样的日志系统可以通过 添加适当的日志框架库到classpath

log4j日志框架学习

初识Log4j: log4j有三个部分: 1.loggers 负责捕获日志信息. 2.appenders  负责输出信息到不同的目的地 3.layouts 负责使用不同的样式输出日志 log4j框架中有两种对象: 核心对象:框架的支撑对象,是框架必不可少的组成部分. 支撑对象:这些都是框架可选的对象,用于提供额外重要的工作. 核心对象包括下面几种类型: logger对象,是最高的层,负责通过不同的风格转化日志信息,他提供给appender对象发布前的信息.(这里的层是指所处的位置) layout

Spring整合log4j日志组件

PHP转Java有一段时间了,最近在学习Spring的一些组件安装.配置及使用.今天学习了log4j作为项目日志操作组件为web开发节省了大量在项目过程中记录日志及日志输送存储的工作. Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台.文件.数据库.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的信息内容和信息输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程: