log4j日志文件配置
log4j已经停止更新了,官方建议升级到log4j2版本。但是如果你没有使用异步输出日志的话,其实提升不大。
添加maven依赖
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--log4j扩展工具,非必须--> <dependency> <groupId>log4j</groupId> <artifactId>apache-log4j-extras</artifactId> <version>1.2.17</version> </dependency>
log4j.properties配置文件配置示例
INFO级别的配置
log4j.rootLogger = INFO, CONSOLE, I, E ### 输出到控制台 ### log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target = System.out log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n ### 输出INFO级别以上的日志到文件中 ### log4j.appender.I = org.apache.log4j.RollingFileAppender log4j.appender.I.File = ./logs/project_name/info/log_info.log log4j.appender.I.Append = true #单个日志大小500M log4j.appender.I.MaxFileSize=500MB #总共备份10GB log4j.appender.I.MaxBackupIndex=20 ## 输出INFO级别以上的日志 log4j.appender.I.Threshold = INFO log4j.appender.I.layout = org.apache.log4j.PatternLayout log4j.appender.I.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n ### 保存异常信息到单独文件 ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender ## 异常日志文件名 log4j.appender.E.File = ${catalina.home}/logs/project_name/error/log_error.log log4j.appender.E.Append = true #每半天生成一个日志文件 log4j.appender.E.DatePattern = '.'yyyy-MM-dd-a ## 只输出ERROR级别以上的日志!!! log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
DEBUG级别的日志配置
log4j.rootLogger = DEBUG, CONSOLE, D, I, E ### 输出到控制台 log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target = System.out log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n ### 输出DEBUG级别以上的日志到文件中 仅测试时使用,正式部署请将这里的注释掉### log4j.appender.D = org.apache.log4j.RollingFileAppender #日志放到tomcat的bin目录下 log4j.appender.D.File = ./logs/project_name/debug/log_debug.log #单个日志大小32M log4j.appender.D.MaxFileSize=32MB #总共备份64M log4j.appender.D.MaxBackupIndex=2 log4j.appender.D.Append = true ## 输出DEBUG级别以上的日志 log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n ### 输出INFO级别以上的日志到文件中 ### log4j.appender.I = org.apache.log4j.RollingFileAppender #日志放到tomcat的logs目录中 log4j.appender.I.File = ../logs/project_name/info/log_info.log log4j.appender.I.Append = true #单个日志大小32M log4j.appender.I.MaxFileSize=32MB #总共备份512M log4j.appender.I.MaxBackupIndex=16 ## 输出INFO级别以上的日志 log4j.appender.I.Threshold = INFO log4j.appender.I.layout = org.apache.log4j.PatternLayout log4j.appender.I.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n ### 保存异常信息到单独文件 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender #日志放到tomcat的logs目录中 log4j.appender.E.File = ${catalina.home}/logs/project_name/error/log_error.log log4j.appender.E.Append = true #每天生成一个日志文件 log4j.appender.E.DatePattern = '.'yyyy-MM-dd ## 只输出ERROR级别以上的日志!!! log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
额外的说明:这里使用了${catalina.home}来获取tomcat的路径,让日志输出到tomcat的logs文件目录下。
一些注意事项:低级别日志也会输出比它级别高的日志; 根据日期来设置日志的无法设置文件个数
补充:指定某个包下或类的日志级别
log4j.logger.包路径=日志级别 #例如:只打印spring的错误日志 log4j.logger.org.springframework=ERROR
使用
import org.apache.log4j.Logger; public class Demo { private static Logger logger = Logger.getLogger(Demo.class); public static void main(String[] args){ logger.trace("------trace---追踪级别,一般不使用"); logger.debug("------debug---调试级别"); logger.info("-------info----普通级别"); logger.warn("-------warn----警告级别"); logger.error("------error---错误级别"); logger.fatal("------fatal---严重级别,程序已经无法运行或应该停止的情况下"); System.out.println("-------------------控制台输出--------------------------"); } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Boot "Redis" 缓存使用姿势盘点
1. Redis 简介Redis 是目前业界使用最广泛的内存数据存储。相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化。除此之外,Redis 还提供一些类数据库的特性,比如事务,HA,主从库。可以说 Redis 兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文介绍 Redis 在 Spring Boot 中两个典型的应用场景。 2. Lettuce 简介如果在 Java 应用中使用过 Redis 缓存,那么对 Jedis 一定不陌生, Lettuce 和 Jedis 一样,都是连接 Redis Server 的客户端程序。Jedis 在实现上是直连 Redis Server,多线程环境下非线程安全,除非使用连接池,为每个 Jedis 实例增加物理连接。 Lettuce 基于 Netty 的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。 3. Spr...
- 下一篇
dom4j解析xml文件简单版
1. 获取xml信息 /** * 获取xml信息 * @param filename 文件相对路径 */ public static Document load(String filename) { Document document = null; try { SAXReader saxReader = new SAXReader(); //使用spring的文件读取方法:org.springframework.core.io.Resource Resource resource = new ClassPathResource(filename); document = saxReader.read(resource.getFile()); // 读取XML文件,获得document对象 } catch (Exception ex) { ex.printStackTrace(); } return document; } reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就代表了整个XML。 读取的字...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果