日志slf4j+log4j配置问题

简介
slf4j  相当于抽象类
log4j 相当于实现,当然还有其他的实现,如logback,jdk自带的logging等

具体配置maven 配置 pom.xml加入

<dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-api</artifactId>      <version>1.6.6</version>  </dependency>  <dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-log4j12</artifactId>      <version>1.6.6</version>  </dependency>
<dependency>    <groupId>log4j</groupId>    <artifactId>log4j</artifactId>    <version>1.2.17</version></dependency>

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

<!--若干个appender的定义-->    <!--org.apache.log4j.ConsoleAppender 输出到控制台-->    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">        <!--输出格式-->        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern"                   value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>        </layout>    </appender>

<!--org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件-->    <appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">        <param name="File" value="output.log"/><!--文件位置-->        <param name="Append" value="true"/><!--是否选择追加-->        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern"                   value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>        </layout>    </appender>

<!--org.apache.log4j.RollingFileAppender 滚动日志文件输出 文件大小到达一定尺寸时重新产生新的文件-->    <!--<appender name="myFile" class="org.apache.log4j.RollingFileAppender">        <param name="File" value="D:/output.log" />        <param name="Append" value="true" />        <param name="MaxFileSize" value="500KB"/>        <param name="MaxBackupIndex" value="10" />        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />        </layout>    </appender>-->

<!--将各个包中的类日志输出到不同的日志文件中        这样可以便于日志的分类。        可以通过这个设置,把业务逻辑的日志添加到数据库。起到过滤的作用    -->    <!--这段配置的就是说把包名为“com.zjut.a1”且优先级为debug的日志通过myFile这个appender来处理。    -->    <category name="com.xxx">        <priority value="info"/>        <appender-ref ref="myConsole"/>    </category>

<!-- 根logger的设置-->    <root>        <!--优先级设置,假设设置为“info”,则无法输出debug级别的日志-->        <priority value="info"/>        <!--<priority value="info"/>-->        <!--<priority value="warn"/>-->        <!--<priority value="error"/>-->        <!--<priority value="fatal"/>-->

<!--添加刚才设置的appender-->        <appender-ref ref="myConsole"/>        <appender-ref ref="myFile"/>    </root></log4j:configuration>

web.xml加入
<context-param>    <param-name>log4jConfigLocation</param-name>    <param-value>/WEB-INF/classes/log4j.xml</param-value></context-param><listener>    <listener-class>        org.springframework.web.util.Log4jConfigListener    </listener-class></listener>

测试代码:

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.HashMap;import java.util.List;import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;

@Controller@RequestMapping("test")public class TestController {

//  // 类名.class   private final static Logger logger = LoggerFactory.getLogger(TestController.class);   @Resource(name = "testServiceImpl")   private TestService testservice;

@RequestMapping("/view.do")   public ModelAndView getAllTest() {      List<Test> list = testservice.getAllTest();      Map map = new HashMap();      map.put("testlist", list);      logger.info("******get list from get ALLTest-----------------------------------");      return new ModelAndView("index", map);   }

}

最后一步,copy maven jar到工程lib里面

时间: 2024-08-02 11:00:19

日志slf4j+log4j配置问题的相关文章

通过slf4j/log4j的MDC/NDC 实现日志追踪

在分布式系统或者较为复杂的系统中,我们希望可以看到一个客户请求的处理过程所涉及到的所有子系统\模块的处理日志. 由于slf4j/log4j基本是日志记录的标准组件,所以slf4j/log4j成为了我的重点研究对象. slf4j/log4j支持MDC,可以实现同一请求的日志追踪功能. 基本思路是: 实现自定义Filter,在接受到http请求时,计算eventID并存储在MDC中.如果涉及分布式多系统,那么向其他子系统发送请求时,需要携带此eventID. 源代码:https://github.c

在android中配置 slf4j + log4j 日志记录框架

需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j 框架来实现.slf4j 是日志记录的一个facade,支持多种日志框架.log4j是个很优秀的日志记录框架. 实现: 下载类库: 先到各主站点下载类库 slf4j 网址 :http://www.slf4j.org/download.html log4j网址: http://logging.apach

日志管理-log4j与slf4j的使用

一.概述 1.log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 2.slf4j: SLF4J,即简单日志门面(Simple Logging Facade

SLF4J 的几种实际应用模式一:SLF4J+Log4J

转载:http://zyjustin9.iteye.com/blog/2028936 SLF4J(Simple Logging Facade for Java) 是一个通用的日志框架,谓之 Facade(门面),所扮眼的角色相当于 Jakarta Commons Logging.就像 JCL 需要底层的日志实现,如 Log4J.java.util.logging.Simple Logger 等来完成具体的信息输出,事实上基本总是 JCL+Log4J 那么一个绝配.SLF4J 的原旨也是能支持多种

日志架构log4j基本使用

[toc] 日志架构log4j基本使用 配置文件 ############################################### # 以下的配置文件都是以log4j.开头 # 最最重要就是第一个log4j.rootLogger,指定log4j日志的输出级别(目的地) # log4j.rootLogger=INFO,stdout,file意思为: # 日志可以输出INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file # # 常见的日志输出级别:DE

Spring中配置使用slf4j + log4j

本人也是查看别人博客获得的方法,详细讲解请参照 https://www.cnblogs.com/yuxiaole/p/9297266.html 下面进入正题: 1.在pom.xml中注入相关的依赖 <!-- slf4j + log4j 日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version&g

开源日志技术log4j

老师的总结: 日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对已经copy过来的jar包,点击右键,然后执行下图操作, 项目中就会多出一个引入外部Library的项目 003.在src目录下创建一个名称为log4j.properties文件 004.编写,粘贴已经写好的配置文件内容,编码方式可以做下修正.对配置文件点击右键→属性→other→ut

java中的日志组件-log4j

1.为什么使用日志组件 Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT的事件记录器:还可以控制每一条日志输出格式.此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通过一个配置文件来灵活进行配置,而不需要修改应程序代码. 在应用程序中输出日志有3个目的: 监视代码中变量的变化情况,把数据周期性记录到文件中供其他应用进行统计分析工作: 跟踪代码运行时轨迹,作

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了