目录

  1. 代码
  2. 配置
  3. 编译
  4. 测试

代码:

import org.apache.log4j.*;

public class Client{
public static void main(String[] args){
PropertyConfigurator.configure("log4j.properties");
Logger logger = Logger.getLogger(Client.class);
logger.info("this is info");
logger.debug("this is debug");
logger.error("this is error");
}
}

配置:


#其中DEBUG为日志level,通过更改此level可以控制日志粒度
#其后的D、I、E表示日志将被记录的哪里,这里都是文件,实际上数据库也可以是目的地
log4j.rootLogger =DEBUG, D,I,E ###
#配置保存在位置D的日志以文件的形式保存,更多保存方式自行查找
log4j.appender.D=org.apache.log4j.FileAppender
#配置日志文件的在磁盘上的位置
log4j.appender.D.File =logs/ALL.txt
#这个Threshold比较关键,它的值决定当前位置D记录日志的粒度
#粒度精细到调试(debug<info<warn<error<fatal)粒度粗到产生严重错误才记录日志
log4j.appender.D.Threshold =DEBUG
log4j.appender.D.Append =true
#这个选项表示日志以那种格式输出
log4j.appender.D.layout =org.apache.log4j.PatternLayout
#日志的内容,这里面的内容比较碎,多上网查吧
log4j.appender.D.layout.ConversionPattern =%d{yy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #
log4j.appender.I=org.apache.log4j.FileAppender
log4j.appender.I.File =logs/INFO.txt
log4j.appender.I.Threshold =INFO
log4j.appender.I.Append =true
log4j.appender.I.layout =org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern =%d{yy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #
log4j.appender.E=org.apache.log4j.FileAppender
log4j.appender.E.File =logs/ERROR.txt
log4j.appender.E.Threshold =ERROR
log4j.appender.E.Append =true
log4j.appender.E.layout =org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%d{yy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

编译:


测试:


我个人觉得那个配置文件需要耐心的弄一下,特别的,

log4j.rootLogger =DEBUG, D,I,E,就是 log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …

前面是日志的粒度控制,后面是日志“保存、显示”在哪里,我刚开始认为 log4j.rootLogger 这个key对应的是不同level的列表,有点蠢。。。哈

基本上就是决定日志去往哪些地方,然后对每个地方进行个性化设置。


这里有比较详细的配置文件的写法:http://m.blog.csdn.net/zhanghaipeng1989/article/details/40155521

把不同的类的日志单独成存放:http://blog.csdn.net/janestone/article/details/1862678

日志的存放路径配置方法:http://blog.csdn.net/longaohun/article/details/6233099

log4j1-x使用的更多相关文章

  1. Log4J1升级Log4J2

    近期,碰到需要将项目中的Log4J1升级到Log4J2,现进行下总结.交代下技术背景:web项目,基于Java + Maven 1. 依赖 <dependency> <groupId ...

  2. 3.Java日志框架slf4j、jcl、jul、log4j1、log4j2、logback大总结

    一.slf4j.jcl.jul.log4j1.log4j2.logback JUL:JDK中的日志记录工具,也常称为JDKLog.jdk-logging. LOG4J1:一个具体的日志实现框架. LO ...

  3. Log4j1.2配置详解

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志的输出到控制台,或者文件等等. 同时,在各大框架中也主要是使用log4j来进行日志的输出. 下面是log4j1.x版本的详细 ...

  4. log4j-1.2.6升级到log4j-2.9.0

    0.工程是普通java web工程,不是maven工程.需要升级log4j 步骤发下: 1. 在build path中 移除项目对log4j-1.2.6.jar的引用,并物理删除log4j-1.2.6 ...

  5. log4j组件的用法(log4j1)

    在实际的项目开发和维护中,日志是经常用到的一个内容.遇到问题的时候,经常需要通过日志去查出问题的所在并解决问题. 通常我们会用: System.out.println(xxx); 来打印运行中所需要的 ...

  6. slf4j、jcl、jul、log4j1、log4j2、logback大总结

    1 系列目录 jdk-logging.log4j.logback日志介绍及原理 commons-logging与jdk-logging.log4j1.log4j2.logback的集成原理 slf4j ...

  7. apache log4j-1.2.15的使用

    1.这个log4j的下载 下载 http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.15/apache-log4j-1.2.15.zip 2. ...

  8. Log4j1.x初识

    初识log4j1.x 研究源码首先要对项目要有整体的认识,这一章节主要让大家对log4j1.x有一个整体的认识,并以此为切入点,认识log4j1.x的真个框架 1 整体认识 先整体上对log4j1有一 ...

  9. Java日志框架使用技巧收集(slf4j、jcl、jul、log4j1、log4j2、logback)

    乒乓狂魔-教程: jdk-logging.log4j.logback日志介绍及原理 commons-logging与jdk-logging.log4j1.log4j2.logback的集成原理 slf ...

  10. slf4j、jcl、jul、log4j1、log4j2、logback大总结[转]

    #1 系列目录 jdk-logging.log4j.logback日志介绍及原理 commons-logging与jdk-logging.log4j1.log4j2.logback的集成原理 slf4 ...

随机推荐

  1. Ubuntu系统为MySQL开启远程连接

    第一步:确保 Ubuntu 系统已经安装上了MySQL数据库.登陆数据库 ,运行如下命令: mysql -u 用户名 -p 然后输入密码,此时登录成功 第二步:创建用户用来远程连接,运行如下命令: G ...

  2. [Linux] day05——命令行

    --------------------linux命令 实现某一功能指令或程序 命令行执行依赖于解释器linux命令的分类 内部命令 属于shell解释器一部分 /bin/bash 外部命令 独立与s ...

  3. 【快学springboot】在springboot中写单元测试[Happyjava]

    前言 很多公司都有写单元测试的硬性要求,在提交代码的时候,如果单测通不过或者说单元测试各种覆盖率不达标,会被拒绝合并代码.写单元测试,也是保证代码质量的一种方式. junit单元测试 相信绝大多数的J ...

  4. vue - 封装input

    input子组件 <el-input :value="value" placeholder="请输入内容" size="small" ...

  5. 题解 P2801 【教主的魔法】

    分块入门题,不错的,建议大家做一做 开始学习 先看一下数列分块入门 2 这道题想让我们求区间[l,r]>=c的个数,然后我们可以看到"数列分块入门 2"是求区间[l,r]&l ...

  6. 整合Spring时Service层为什么不做全局包扫描详解

    合Spring时Service层为什么不做全局包扫描详解 一.Spring和SpringMVC的父子容器关系 1.讲问题之前要先明白一个关系 一般来说,我们在整合Spring和SpringMVC这两个 ...

  7. 弱点扫描-openvas初始化

    OPENVAS: NESSUS项目分支:商业版的扫描器 管理目标系统的漏洞 免费开源 Kali 默认安装但是未配置个启动 安装 创建证书 同步弱点数据库 创建客户端证书 重建数据库 备份数据库 启动服 ...

  8. redis学习记录1 特性与优点

    1.存储结构:字符串.散列.列表.集合.有序集合. redis存储结构的优势:数据在redis中的储存方式和其在程序中的储存方式相近:redis对不同数据类型提供非常方便的操作方式,如使用集合类型储存 ...

  9. 有没有比NRF51822更好的智能穿戴蓝牙方案

    现在在智能穿戴领域市场不断的追求低功耗.低成本的蓝牙芯片.蓝牙芯片目前除了Dialog公司研制蓝牙芯片是最求超低功耗的但是对于其它性能上还比较满足不了其它领域的功能,另外NORDIC.TI的蓝牙芯片虽 ...

  10. spring#事件发布订阅

    1. 如果在应用中发生了某些事件,事件会被拦截和处理就好了,这样就有了很大的灵活性,至少代码不会紧密的耦合在一起, 代码的解耦就是业务的解耦,业务A的代码不用手动的调用业务B的代码,业务B只需要监听相 ...