本文原文出自我的个人网站【思考者日记】原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

上篇说到tomcat jndi(连接池)的使用方法,这次的项目里还使用到了一个日志开关配置,主要是方便客户查看。

我们平时的日志一般使用最多的就是java.util.logger和log4j了。

这里因为要在外部灵活配置,所以我们采用log4j来控制。

首先我们需要log4j.jar和log4j.properties

现在我们在程序中写日志输出

引入import org.apache.log4j.Logger;

Logger logger = Logger.getLogger("这里的名字随便取,一般是本类类名,这里是CheckUserServlet");

//Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码

logger.info("hello,world");

接下来,关键的了。

配置log4j.properties文件,如下

log4j.logger.CheckUserServlet=INFO,A

# log4j.logger.CheckUserServlet里的CheckUserServlet是我刚在程序里取的名字

log4j.appender.A=org.apache.log4j.DailyRollingFileAppender

log4j.appender.A.File=d:/test.log

#这里将日志输出到D盘的test.log里,具体配置大家看下面的详细说明 ,还可以用${webapp.root}表示tomcat根目录,具体大家试试吧

log4j.appender.A.layout=org.apache.log4j.PatternLayout

log4j.appender.A.layout.ConversionPattern=%d%m%n

现在我们就可以将日志输出到D盘的test.log文件里了。

但是,要关闭日志写入,应该怎么办啊?

除了上面的5种级别,我们还可以设置成这样:

log4j.logger.CheckUserServlet=INFO,A

将这里的info级别设置成OFF,这样就可以关闭日志写入啦。

当然上面的大家可以灵活配置,配置成多个日志输出的,只要增加程序Logger.getLogger方法,里面的名字另起一个即可,再在log4j.properties里多写一段上面的配置,改掉里面的名字,这样就可以输出不同的日志文件了。

下面是log4j配置里的说明:

#将等级为debug的日志信息输出到stdout这个目的地

#等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

#Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG

log4j.rootLogger=INFO,stdout

#定义名为stdout的输出端是哪种类型

#org.apache.log4j.ConsoleAppender(控制台)

#org.apache.log4j.FileAppender(文件)

#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

#定义名为stdout的输出端的layout是哪种类型

#org.apache.log4j.HTMLLayout(以HTML表格形式布局)

#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

#如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern

#%m 输出代码中指定的消息

#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

#%r 输出自应用启动到输出该log信息耗费的毫秒数

#%c 输出所属的类目,通常就是所在类的全名

#%t 输出产生该日志事件的线程名

#%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式

#比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

#[QC]是log信息的开头,可以为任意字符,一般为项目简称。

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

本文原文出自我的个人网站【思考者日记】原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

log4j 新建日志 重启_Java中log4j控制写入日志开关相关推荐

  1. Java中log4j控制写入日志开关

    本文原文出自我的个人网站[思考者日记]原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. 上篇说到tomcat jndi(连接池)的使用方法,这次的项目里还使用到了一 ...

  2. log4j中调试与错误日志分开_idea中log4j日志插件报错

    visual studio code权威指南计算机 65.34元 包邮 (需用券) 去购买 > idea中log4j日志插件报错 在运行测试代码的时候,出现以下错误! 在 src/ main / ...

  3. java log日志函数_Java 中的 AWS Lambda 函数日志记录 - AWS Lambda

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Ja ...

  4. java中写入文件_java中创建、写入文件的5种方式

    在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...

  5. python写日志到文件_python 通过logging写入日志到文件和控制台的实例

    如下所示: import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.setLevel(logging.DEB ...

  6. java gc日志乱码_Java中9种常见的CMS GC问题分析与解决(四)

    目前,互联网上 Java 的 GC 资料要么是主要讲解理论,要么就是针对单一场景的 GC 问题进行了剖析,对整个体系总结的资料少之又少.前车之鉴,后事之师,美团的几位工程师历时一年多的时间,搜集了内部 ...

  7. java中读取logback日志文件_java 中使用logback日志,并实现日志按天分类压缩保存。...

    以maven项目作为构建工具为例,首先引入使用logback需要的3个依赖,需要注意使用logback是需要引入slf4j-api的,因为logback是基于slf4j的 ch.qos.logback ...

  8. java 输出指定位数_java中如何控制输出数字位数

    展开全部 用个例子来说明: ‍ double d = 345.678; String s = "hello!"; int i = 1234; //"%"表示进行 ...

  9. java日志模块_Java源码初探_logging日志模块实现

    一.用途 程序中记录日志,打印到控制台.文件等方式,记录过程可根据日志级别做筛选,日志格式可以自定义. 大概结构如下所示: 简要说明各个模块: (1) LogManager:管理LoggerConte ...

最新文章

  1. 给定一个日期,算出上周五日期
  2. k8s组件说明:ETCD存储组件
  3. mysql my.cnf 官网_MySQL my.cnf 的配置
  4. sass 基础——回顾
  5. Visual studio 的教程
  6. 『参考』.net CF组件编程(1)——基础之后
  7. matlab 电力电子仿真电路,基于Matlab的电力电子电路仿真方法
  8. Matlab中常用矩阵分解
  9. 高性能软件系统设计中应该考虑的问题
  10. js怎么实现ftp上传文件到服务器,js ftp上传文件到服务器上
  11. TestFlight构建版本提示缺少出口合规证明
  12. chia 免费软件快速p图 支持官方最新协议
  13. 胡爱玲医生论中医治疗荨麻疹的优势和理念
  14. 脏写、脏读、不可重复读、幻读的区别
  15. 基于python的管理系统_基于ssm的管理系统_基于python管理系统
  16. 基于三维GIS技术的公路交通数字孪生系统
  17. 将桌面的计算机图标改为,不小心把电脑桌面的图标都改为了windows meedia center怎么处理...
  18. python工具方法35 实现SWA,再一次提升模型的性能
  19. Sql Server 2008 R2 完全卸载步骤
  20. 电机与拖动(2) 变压器空/负载分析

热门文章

  1. 创建苹果id失败_自制无添加苹果干 无糖
  2. 制药工程专业计算机二级,全国制药工程本科专业认证标准2016年12月修订.pdf
  3. java 开发 加固态_搭建一个完整的Java开发环境
  4. java字符相似_JAVA 获取两个字符串的相似度
  5. linux使用fabric教程,Hyperledger fabric在Linux下的环境搭建
  6. 计算机考试67,计算机等级考试(国家)-二级c机试模拟67.doc
  7. ip地址、域名、DNS、URL(即网址)的区别与联系
  8. 神经网络中的前向和后向算法
  9. python实践项目(三)
  10. 保研论坛app服务器网站,保研论坛官网版app