log4j如何让日志文件输出到相对于classpath的相对路径

问题描述

输出日志到文件,我用的是相对路径,类似这种格式./xxx/test.log。结果我发现这个路径在linux下得到的不是相对class的路径,而是我启动程序的根目录,我没用使用类似tomcat这样的容器,就是直接用java -jar命令启动的程序,结果得到的路径却是我当前所在的路径,到底怎么能让它把日志放在classpath相对路径

解决方案

在程序启动时获取classpath路径,用System.setProperty(log_path,classpath)把值设置到一个变量中,在log4j.property的日志文件中路径前面加上${log_path}/

时间: 2024-10-01 19:08:23

log4j如何让日志文件输出到相对于classpath的相对路径的相关文章

log4j配置单独日志文件输出

log4j.logger.batteryHistory=ERROR,BD log4j.appender.BD=org.apache.log4j.FileAppender log4j.appender.BD.File=../logs/batteryDataHistory.log log4j.additivity.BD=false log4j.appender.BD.Append = true log4j.appender.BD.Threshold = ERROR log4j.appender.BD

log4j每天生成日志文件

问题描述 log4j每天生成日志文件 我在本机配置的log4j,是可以第天生成日志文件的,但我把项目部署到win server 2008以后,就不会每天生成了,而是每天追加到第一次启动时生成的日志文件里面,不知道是咋回事呢,权限那些也是正常的,下面是我的log4j配置: #日志级别INFO,输出到控制台.文件 log4j.rootLogger=INFO,CONSOLE,FILE #控制台输出配置 log4j.appender.CONSOLE=org.apache.log4j.ConsoleApp

java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)_java

log4j输出多个自定义日志文件 如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢? 先看一个常见的log4j.properties文件,它是在控制台和test.log文件中记录日志: 复制代码 代码如下: log4j.rootLogger=DEBUG, stdout, logfile  log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.lay

为什么logback在tomcat中运行时日志文件输出到eclipse目录下

问题描述 使用相对路径时,同样的logback日志配置文件,在jetty中运行会输出日志到当前项目的路径下,而部署到tomcat中就输出到eclipse根目录下了,有什么办法可以解决这个问题?我想了很久都不知道为什么.logback部分配置如下<appendername="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicyclass="ch

log4j中配置日志文件相对路径方法分析

  方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log其中"${WORKDIR}/"是个变量,会被System Property中的"WORKDIR"的值代替.这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDI

log4j配置 多文件输出

问题描述 log4j配置 多文件输出 我用log4j配置多文件输出,配置了3个输出地,输出的内容A2,A3,A4,MAIL 的error ,fatal ,三个日志文件一样,发送邮件,发送了A2,A3,A4,MAIL 的error ,fatal 信息共8封邮件,各位大神这个是是么问题?下面是配置 解决方案 log4j日志信息输出文件配置log4j 级别.多文件输出配置,企业级应用适用Log4j输出日志到文件[配置] 解决方案二: http://www.2cto.com/os/201407/3166

log4j:在某个文件夹下输出多个日志文件

问题描述 log4j:在某个文件夹下输出多个日志文件 开户的过程中,想让每个手机号对应一个日志文件,都放在同一个目录下. 日志文件的名字以手机号来命名.使用log4j,应该怎么做呢? 急求急求,大家帮帮忙...... 解决方案 log4j输出多个自定义日志文件Log4j输出日志到文件[配置]log4j异步文件日志输出配置 解决方案二: 创建日志得时候用手机号命名呗

Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下

以下都是log4j.properties要写入的内容: 一:参数介绍: 1.Log4J配置文件的基本格式如下: [plain] view plaincopy #配置根Logger   log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  -      #配置日志信息输出目的地Appender   log4j.appender.appenderName  =  fully.qualified.name.of.a

方法-关于logback如何按等级输出到控制台和保存到日志文件

问题描述 关于logback如何按等级输出到控制台和保存到日志文件 我现在这个项目要把log4j转成用logback,之前在log4j中的分级方法是好用的,结果在写logback的demo测试中不好用了,望大神给看看,下面是配置文件的源码 <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="D" class="ch.q