java指定log打印的路径_Log4j使用相对路径指定log文件及使用总结

Log4j在指定log文件位置时一般是使用绝对路径,这样在部署环境发生变化时显得十分麻烦,在网上找了很多种方法,个人感觉以下方法比较适用:

由于spring也会加载log4j.properties,如果加载不到就往控制台打log信息。Spring提供了 一个Log4jConfigListener,本身就能通过web.xml中配置来指定位置加载log4j配置文件和log输出路径,注意该 listener需要放在spring的Listener之前。

事实上,Log4jConfigListener更适合log4j在web工程中使用,原因如下:

1. 动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。

2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。

因为 系统把web目录的路径压入一个叫webapp.root的系统变量。这样写log文件路径时不用写绝对路径了.

log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/settlement.log

3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。

4. log4jRefreshInterval为60000表示 开一条watchdog线程每60秒扫描一下配置文件的变化;

在web.xml 添加

log4jConfigLocation

WEB-INF/log4j.properties

log4jRefreshInterval

60000

org.springframework.web.util.Log4jConfigListener

log4j配置文件如下:

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

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

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.rootLogger=info, stdout,R

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File=${webapp.root}/WEB-INF/logs/settlement.log

log4j.appender.R.DatePattern = "."yyyy-MM

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

log4j.appender.R.layout.ConversionPattern=%d %p [%c] - %m%n

另:

Log4j提供的appender有以下几种

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

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

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

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

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

我们开发的B/S结构系统,在服务端一般要有日常运行的日志记录。保存成日志文件形式的时候,大家经常会遇到一个问题:日志文件过大。上百兆的日志文件对 查阅日志信息来说也是一个问题。所以我希望能够每天或每个月产生一个日志文件,这样文件不至于过大。 或者根据日志文件大小来判断,超过规定大小,日志自动增加新文件。

在log4j中这两种方式的实现都很简单,只要在配置文件中设置即可。

一、按照一定时间产生日志文件,配置文件如下:

# Set root logger level to ERROR and its only appender to A1.

log4j.rootLogger=ERROR,R

# R is set to be a DailyRollingFileAppender.

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File=backup.log

log4j.appender.R.DatePattern = "."yyyy-MM-dd

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

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

以上配置是每天产生一个备份文件。其中备份文件的名字叫backup.log。

具体的效果是这样:当天的日志信息记录在backup.log文件中,前一天的记录在名称为 backup.log.yyyy-mm-dd 的文件中。

类似的,如果需要每月产生一个文件可以修改上面的配置:

log4j.appender.R.DatePattern = "."yyyy-MM-dd

改为

log4j.appender.R.DatePattern = "."yyyy-MM

二、根据日志文件大小自动产生新日志文件

配置文件内容如下:

# Set root logger level to ERROR and its only appender to A1.

log4j.rootLogger=ERROR,R

# R is set to be a RollingFileAppender.

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=backup.log

#log4j.appender.R.MaxFileSize=100KB

# Keep one backup file

log4j.appender.R.MaxBackupIndex=1

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

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

其中:

#日志文件的大小

log4j.appender.R.MaxFileSize=100KB

# 保存一个备份文件

log4j.appender.R.MaxBackupIndex=1

另:

日志显示级别:

它们定义了日志显示的级别,一共分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,明白这一点很重要,这里Log4j有一个规则:假设设置了级别为P,如果发生了一个级别Q比P高,则可以启动,否则屏蔽掉。

WIFI CSI动作识别数据集全解析:从数据采集到深度学习应用 本文全面解析了利用商用Wi-Fi设备的信道状态信息进行动作识别的完整流程。文章以经典WiSA数据集为例,深入剖析了CSI数据的采集原理、结构特点,并详细阐述了从原始数据预处理、特征工程到深度学习模型(如CNN-LSTM融合架构)构建与优化的关键技术,旨在为研究者提供从数据到应用的全链路实战指南。 阅读详情

相关推荐

【局部规划模块曲线算法】曲线平滑介绍

本文先对轨迹平滑问题做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容(1)适合给移动机器人运动的路径【满足运动学,高阶平滑】(2)高阶的运动学不能够突变的【至少三阶的加速度不能突变,最好四阶的jerk和五阶的snap也不能突变】(3)在转弯的地方不会停下来(4)加减速均衡,节省能量(5)节省时间的。

qq_35635374的博客 5683

log4j输出位置配置

附件内有文件     log4j.rootLogger=DEBUG,CONSOLE   #打印到控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  log4j.appender.CONSOLE.Threshold=DEBUG  log4j.appender.CONSOLE.Target=System.out...

shanghuzaixian的博客 186

一个非常好用gis arctool的工具-矢量数据批量合库(GDB和MDB,SHP要素类)神器!

一个非常好用gis arctool的工具--矢量数据批量合库神器!只需要将该工具添加到ArcGIS自定义工具箱里面,双击即可运行,方便高效。根据模板数据库,把文件夹含(子文件夹)下,GDB和MDB,SHP要素类(含数据集下的要素类)、表,名称相同追加到模板中,字段主动对照;追加失败:模板字段和输入数据字段类型不一致,或者模板长度短。

log4j日志打印文件路径输入问题

log4j.properties有一行配置是关于日志文件目录的。 log4j.appender.RollingFile.File=…/logs/log/faultPush.log log4j.rootLogger=WARN, Console, RollingFile #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender...

a843013383的博客 1145

java 分布式微服务配置统一的日志输出包括logstash

logstash在微服务中这样配置

weixin_58301478的博客 2202

log日志输出路径

一、绝对路径  直接配置为系统的绝对路径 二、相对路径 # LOG4J配置 log4j.rootLogger=INFO,stdout,file log4j.logger.com.qingxu.extension=TRACE # 控制台输出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.

lvdaan的博客 1万+

java 打印日志文件存放到制定位置

java日志配置

weixin_55733979的博客 1450

Log4j相对路径以及打印Hibernate的SQL和HQL记录

转载于:http://www.360doc.com/content/07/0721/15/14386_623921.shtmlLog4j相对路径以及打印Hibernate的SQL和HQL记录2007/07/12 21:51<br />今天研究了下Log4j,小有收获,现在分享下经验。<br />首先是Log4j日志记录的相对路径问题,今天研究了下发现有个很简单的办法实现相对路径。网上有很多人发帖询问log4j日志记录的相对路径问题,也有人提供了很多方法,最常见的三个方法是:<br />法一、 想办法用相对路

zgmzyr的专栏 3945

java读取log4j配置文件路径_Log4j 2.0读取配置文件的方法

package com.herman.test;import java.io.File;import java.io.FileInputStream;import java.net.URL;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.apache.loggi...

weixin_42509236的博客 853

mybatis通过log4j打印日志

首先要在mybatis的配置文件中开启日志打印log4j mybatis-plus: configuration: call-setters-on-nulls: true log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl map-underscore-to-camel-case: true cache-enabled: false 然后在配置logback-spring.xml,写入以下内容 <?xml ve

weixin_41836074的博客 1427

log4j2日志文件的引入

springboot引入log4j2替换logback

shi_xi_liang的博客 1030

java中的slf4j、log4jlogback的区别与联系以及使用方法

java开发,我们会需要记录程序在运行过程中的一些信息,特别是错误信息,这样方便我们寻找错误,把日志信息写到文件当中,这样方便我们查找,特别是将程序打成jar包布置到服务器上,将日志记录到文件中必不可少,这时就需要使用一些日志框架。下面就来了解几个使用比较多的日志框架以及它们的用法。slf4j(Simple Logging Facade for Java)是一系列的日志接口,而log4jlogback是具体实现了的日志框架。...

sunzixiao的博客 5437

二:SpringBoot-配置Log4j2,实现不同环境日志打印

SpringBoot-配置Log4j2,实现不同环境日志打印日志打印之外观模式1、日志配置2、Log4j2的配置文件3、简单的测试程序 日志打印之外观模式 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,增加应用程序代码和日志框架的耦合性。 《阿里巴巴Java开发手册》,其中有一条规范做了『强制』要求: SLF4J Java简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装Logging 框架的界面程式,以外观模式实现。 1

爱是与世界平行 4416

tomcat的log日志打印位置

log4j.properties配置文件如下: #Logger root setting log4j.rootLogger = INFO,FILE,CONSOLE,DEBUG log4j.threshhold = INFO,DEBUG #Daily Rolling File Appender log4j.appender.FILE = org.apache.log4j.DailyRollingF

空谷幽兰草堂 2万+

Log4j的原理与使用

一、Log4j的组成 1. Logger组件(记录器组件负责产生日志) 2. Appender组件(信息通过Appender组件输出到目的地,控制台、文件等) 3. Layout组件(负责格式化输出的日志信息) 二、配置log4j.properties 三、使用Log4j 1. 导入Log4j所需jar包 2. 得到日志记录器     static Logger logge

敬天爱人 1951

log4j 按天打印文件夹_log4j中用变量配置日志输出文件位置

这篇文章写得比较全面,转过来,算是共享吧,同时感谢javaeye上的zengjinliang,呵呵方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${WORKDIR}/”是个变量,会被System Property中的“W...

weixin_31829293的博客 282

log4j中Pattern布局ConversionPattern详解

spring使用log4j,可以有2种方法。 1、在web.xml里不做任何配置。 log4j.properties放在classpath根目录下, 这时候生成的日志文件就没有相对路径,如果写相对路径,则会生成在安装tomcat的根路径下。 2、在web.xml设置。 <context-param> <para...

weixin_34038652的博客 344

SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印

一、Log4j2日志简介 日志打印是了解Web项目运行的最直接方式,所以在项目开发中是需要首先搭建好的环境。 1、Log4j2特点 1)核心特点 相比与其他的日志系统,log4j2丢数据这种情况少;disruptor技术,在多线程环境下,性能高;并发的特性,减少了死锁的发生。 2)性能测试 2、日志打印之外观模式 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,增加......

【积累】,是一个长期持续的过程。 2865

zk日志java路径,Zookeeper修改运行日志zookeeper.out输出路径

前言Zookeeper中运行日志 zookeeper.out 文件的输出路径默认为启动脚本的当前路径,导致Zookeeper集群启动失败时总是不记得输出日志在哪儿,不便于查找错误原因,因此很有必要设置固定路径来保存运行日志在本次实验之前已经将 dataDir 和 dataLogDir 分别设置为$ZOOKEEPER_HOME/zkData和$ZOOKEEPER_HOME/logs/transact...

weixin_31764625的博客 698

linux 打印进程日志,Linux查看应用的log4j日志输出目录

在Windows Tomcat下部署的log4j日志自动保存到Tomcat下的logs目录下,如果不熟悉Linux的日志输出方式,那么很有可能找不到对应的日志。这篇文章讲述的是如何去找Linux配置的应用输出日志。Linux下配置路径默认是系统路径log4j.properties配置log4j.rootLogger=INFO, Console,RollingFile, D#Consolelog4...

weixin_33821888的博客 650
上一篇: java导出海量数据库_JAVA使用POI导出海量数据附源码(支持图片)
下一篇: php-mysql rpm_Apache+Mysql+Php安装文档(rpm版本)
许相荣
博客等级 码龄9年 30粉丝 239原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值