1.Maven的dependency

2.log4j.properties的配置

3.Junit的Test类

4.web.xml的配置(非必要)

5.spring的db.config的配置(非必要)

一.maven的dependency

<!--log4j-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>

这些jar包都可以去maven中央仓库下载到,http://search.maven.org/。

二.log4j.properties的配置。

#所有日志
log4j.rootLogger = DEBUG,stdout,file log4j.logger.org.apache.ibatis=warn
log4j.logger.java.sql=warn
log4j.logger.org.springframework=warn # Druid
log4j.logger.druid.sql=DEBUG
log4j.logger.druid.sql.DataSource=warn
log4j.logger.druid.sql.Connection=warn
log4j.logger.druid.sql.Statement=DEBUG
log4j.logger.druid.sql.ResultSet=warn
#设置包名的输出级别
log4j.logger.cn.wdq=DEBUG,wdq #控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n #所有文件输出
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ${webApp.root}/wdq_logs/allDEBUG.log
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.name = fileLogDemo
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.file.append = true #wdq下所有包的文件输出
log4j.appender.wdq = org.apache.log4j.FileAppender
log4j.appender.wdq.File = ${webApp.root}/wdq_logs/package_wdq.log
log4j.appender.wdq.Encoding=UTF-8
log4j.appender.wdq.name = fileLogDemo
log4j.appender.wdq.Threshold=DEBUG
log4j.appender.wdq.layout=org.apache.log4j.PatternLayout
log4j.appender.wdq.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.wdq.append = true
log4j.properties是默认加载的文件名,如果要另外起名字,还需要在web.xml里面进行配置,如果是测试用的,最好用默认的名字,这跟Spring的Application.xml有点像。
log4j.rootLogger = DEBUG,stdout,file中的DEBUG是日志输出优先级,从高到低依次为error,warn,info,debug,低级别的可以输出高级别的日志,如debug可以输出任何优先级的
日志,但是info只能输出info,warn,error级别的日志。stdout,file这两个有点类似于变量名,可以自定义名称,可以用这两个东西进行控制台或者文件的输出。比如控制台的为
log4j.appender.stdout=org.apache.log4j.ConsoleAppender;保存为文件的为log4j.appender.file = org.apache.log4j.FileAppender。还有另外三种按天生成的,流形式生成的,
滚动形式的,这里就不介绍了(反正我也忘了...),具体可以去官方文档看一下appender的几种输出形式。值得一提的是1.文件编码(Encoding):这个要定义为UTF-8不然输出到文件里面有时候部分类
的编码不一致,有导致部分乱码。2.文件的名字和存储路径(File):如上,我写的是${webApp.root}/wdq_logs/package_wdq.log,这个其实是在web.xml里面定义好的。如果没有定义,那么
将会输出到你项目的磁盘根目录。文件名的格式有常用的.log和.html,推荐用.log,方便项目里面的所有人查看。3.(追加方式append):设置属性为true,如果是false的话就会覆盖掉原先的日志而不是
追加到后面。
三.Junit的测试类的输出
package cn.wdq.test;

import org.apache.log4j.Logger;
import org.junit.Test; public class LoggerTest {
Logger logger= Logger.getLogger(LoggerTest.class);
@Test
public void printLogger(){
logger.error("直接输出吧");
try { } catch (Exception e) {
e.printStackTrace();
}
}
}

控制台输出效果

文件输出效果

四.web.xml的配置(非必要)
<!--log4j-->
<!--给日志配置路径-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<!--<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j2.xml</param-value>
</context-param>-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
1.使用默认的名字(log4j.properties),就不用配置log4jConfigLocation(上面注释掉的部分)。不然就指定路径(log4j2.xml是我现在用不到的部分),我现在放的是在根目录,直接classpath:log4j2.xml。
classpath是指定路径的格式,此外还有classpath.*:log4j2.xml。他们两个的区别是classpath是默认加载第一个,加载到就结束。classpath.*还会搜索后面还有没有匹配项。
2.如果指定绝对路径就不用配置webAppRootKey,这个是把文件放到webapp下面的。value值可以自定义,但是name值只能是webAppRootKey。配置了之后就要配置listener监听,不然就忽略。
官方的说的默认加载顺序为1.* 2.*(前面这两个我忘了...与java相关的就后面的两个)3.log4j.properties和3.log4j.xml。现在网上有很多老旧的文章是1.X的版本的xml配置方法。
我这里要说的是2.X的。他们两者的区别如下
1.X
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<category name="org.apache.log4j.xml">
<priority value="info" />
</category>
<Root>
<priority value ="debug" />
<appender-ref ref="STDOUT" />
</Root>
</log4j:configuration>

  2.X

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.log4j.xml" level="info"/>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>

  

五、Spring的db.config的配置(非必要)
我是启用了mybatis和druid连接池,所以会加一句
filters: stat,log4j

这样可以监听到log4j日志。

												

log4j日志输出到文件的配置的更多相关文章

  1. MY_Log,无缝替换原生Log,支持日志输出到文件、FirePHP

    自己扩展了一个MY_Log, 用法类似于log4j,目前支持将日志输出到文件.FirePHP.如果你需要将日志输出到其他地方,比如邮件.数据库等,可以很方便地进行扩展. 用法很简单,大家一看就知道.1 ...

  2. log4j日志输出级别变更

    1.   现阶段log4j日志输出配置 示例:基础服务日志配置 #DEBUG < INFO < WARN < ERROR < FATAL\u65E5\u5FD7\u7684\u ...

  3. ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

    应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET ...

  4. log4j日志输出到日志文件中和控制台中 +log4j配置详解

    1.引入log4j的jar包 https://mvnrepository.com/,可以找到log4j的jar和依赖. 2.创建log4j.properties,并配置log4j #设置日志的级别 , ...

  5. log4j日志输出到web项目指定文件夹

    感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导 ...

  6. web项目Log4j日志输出路径配置问题

    问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽 ...

  7. log4j日志输出使用教程

    Log4j是帮助开发人员进行日志输出管理的API类库.它最重要的特点就可以配置文件灵活的设置日志信息的优先级.日志信息的输出目的地以及日志信息的输出格式.Log4j除了可以记录程序运行日志信息外还有一 ...

  8. log4j日志输出性能优化-缓存、异步

     转载 1.log4j已成为大型系统必不可少的一部分,log4j可以很方便的帮助我们在程序的任何位置输出所要打印的信息,便于我们对系统在调试阶段和正式运行阶段对问题分析和定位.由于日志级别的不同,对系 ...

  9. log4j日志输出框架

    什么是log4j框架呢? log4j是一个日志输出框架,用于输出日志的.比如MyBatis的日志就是通过log4j输出的,主流框架都是log4j输出的,Spring框架 也可以通过log4j输出日志! ...

随机推荐

  1. [题解](树形dp/换根)小x游世界树

    2. 小x游世界树 (yggdrasi.pas/c/cpp) [问题描述] 小x得到了一个(不可靠的)小道消息,传说中的神岛阿瓦隆在格陵兰海的某处,据说那里埋藏着亚瑟王的宝藏,这引起了小x的好奇,但当 ...

  2. 可视化-grafana_使用influxDB数据

    1 添加数据源 给数据源取个名字,然后选择数据类型为influxDB. HTTP:8086是influxDB的HTTP查询API,grafana是通过这个接口获取数据. Details:选择从infl ...

  3. JQuery基础知识梳理篇

    这周没事,优化线上项目,因为前端都在赶项目,我又若菜.于是前端数据展示也要自己来.看javascript看到吐,决定梳理一下Jquery基础知识.敲黑板) 闲扯结束,进入正题. 选择器 介绍 jque ...

  4. HDU6441(费马大定理)

    听队友说过结论:a^n + b^n = c^n在n > 2时无解. 勾股那里本菜数学不好直接暴举了Orz. 跟大家学一波勾股数的构造:a是奇数时,tmp = a / 2; b = (tmp + ...

  5. Ubuntu-apt安装Jenkins

    系统环境: Ubuntu 16.0.4 2CPU,8G 1.默认Ubuntu软件包里没有Jenkins 2.系统里添加存储密钥 wget -q -O - https://pkg.jenkins.io/ ...

  6. HDU 5974 A Simple Math Problem 数学题

    http://acm.hdu.edu.cn/showproblem.php?pid=5974 遇到数学题真的跪.. 题目要求 X + Y = a lcm(X, Y) = b 设c = gcd(x, y ...

  7. Dubbo理论知识

    本文是作者根据官方文档以及自己平时的使用情况,对 Dubbo 所做的一个总结.如果不懂 Dubbo 的使用的话,可以参考我的这篇文章<超详细,新手都能看懂 !使用SpringBoot+Dubbo ...

  8. TDH-hbase shell 常用命令

    一.HBASE shell 命令操作;1.建表: create ‘tableName’,'f1','f2'; 注:列簇,裂限定符都要尽量短: 2.插入数据: put 'tableName','RowK ...

  9. mac系统连接Android手机

    1. 打开终端,输入:system_profiler SPUSBDataType,查看Mac系统所有USB设备信息,找到相应的厂商Vender ID 2.输入echo "Vender ID& ...

  10. 【Web应用-Kudu】Kudu 管理和诊断 azure web 应用

    Azure  Kudu是 GitHub 上的一个开源项目,Kudu 站点 (也称为网站控制管理 SCM) 提供了一系列的在线工具,可以帮助用户查看 web 应用的设置,诊断 web 应用,以及安装 w ...