jvm参数 log4j 日志路径_log4j将日志文件输出到相对路径

建议直接使用jvm中定义的变量或者操作系统的环境变量。

log4j.appender.logfile.File=${user.dir}/logs/app.log,使用tomcat容器时${user.dir}对应tomcat的bin目录;

log4j.appender.logfile.File=${user.home}/logs/app.log,${user.home}对应操作系统当前用户目录;

log4j.appender.logfile.File=${webApp.root}/logs/app.log,${webApp.root}对应当前应用根目录;

log4j.appender.E.File = ${catalina.base}/logs/error.log

System.getProperty(..)方法可以得到的变量也是可以的,比如说user.dir等与操作系统相关的变量会默认加载进来。

另外,利用启动参数-D也可以手动加入系统参数.

比如可以这样:

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

// 初始化日志路径

String rootPath = PathUtil.getPath();

System.setProperty("log_path",rootPath);

陷阱tips:

附:

public static void main(String args[]){

Properties properties = System.getProperties();

for (Map.Entry entry : properties.entrySet()) {

System.out.println(entry.getKey() + ":" + entry.getValue());

}

}

java.runtime.name:Java(TM) SE Runtime Environment

sun.boot.library.path:C:\Program Files\Java\jdk1.8.0_11\jre\bin

java.vm.version:25.11-b03

java.vm.vendor:Oracle Corporation

java.vendor.url:http://java.oracle.com/

path.separator:;

java.vm.name:Java HotSpot(TM) 64-Bit Server VM

file.encoding.pkg:sun.io

user.country:CN

user.script:

sun.java.launcher:SUN_STANDARD

sun.os.patch.level:

java.vm.specification.name:Java Virtual Machine Specification

user.dir:F:\workspace2

java.runtime.version:1.8.0_11-b12

java.awt.graphicsenv:sun.awt.Win32GraphicsEnvironment

java.endorsed.dirs:C:\Program Files\Java\jdk1.8.0_11\jre\lib\endorsed

os.arch:amd64

java.io.tmpdir:C:\Users\AppData\Local\Temp\

line.separator:

java.vm.specification.vendor:Oracle Corporation

user.variant:

os.name:Windows 8.1

sun.jnu.encoding:GBK

java.library.path:C:\Program Files\Java\jdk1.8.0_11\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;F:\oracle;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;E:\tools\apache-maven-3.1.0\bin;C:\Program Files\Java\jdk1.8.0_11\bin;C:\Users\qing\AppData\Roaming\npm;D:\Program Files\TortoiseSVN\bin;D:\Program Files\SlikSvn\bin;D:\Program Files\nodejs\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\Program Files\MATLAB\R2016b\runtime\win64;D:\Program Files\MATLAB\R2016b\bin;D:\Program Files\MATLAB\R2016b\polyspace\bin;C:\Users\qing\AppData\Roaming\npm;C:\Users\qing\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\HMA! Pro VPN\bin;.

java.specification.name:Java Platform API Specification

java.class.version:52.0

sun.management.compiler:HotSpot 64-Bit Tiered Compilers

os.version:6.3

user.home:C:\Users\qi

user.timezone:Asia/Shanghai

java.awt.printerjob:sun.awt.windows.WPrinterJob

file.encoding:UTF-8

java.specification.version:1.8

java.class.path:C:\Program Files\Java\jdk1.8.0_11\jre\lib\charsets.jar;……省略

user.name:qing

java.vm.specification.version:1.8

sun.java.command:com.sung.risk.client.Test

java.home:C:\Program Files\Java\jdk1.8.0_11\jre

sun.arch.data.model:64

user.language:zh

java.specification.vendor:Oracle Corporation

awt.toolkit:sun.awt.windows.WToolkit

java.vm.info:mixed mode

java.version:1.8.0_11

java.ext.dirs:C:\Program Files\Java\jdk1.8.0_11\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext

sun.boot.class.path:C:\Program Files\Java\jdk1.8.0_11\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_11\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_11\jre\classes

java.vendor:Oracle Corporation

file.separator:\

java.vendor.url.bug:http://bugreport.sun.com/bugreport/

sun.io.unicode.encoding:UnicodeLittle

sun.cpu.endian:little

sun.desktop:windows

sun.cpu.isalist:amd64

log4j 将日志文件输出到web-inf下的解决办法

参考链接:http://blog.csdn.net/chenfengdejuanlian/article/details/70738995 只需要配置好即可,用的时候直接在代码中获得记录器记录,监听器 ...

log4j配置日志文件log4j.appender.R.File相对路径方法

方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

使用log4j配置不同文件输出不同内容

敲代码中很不注意写日志,虽然明白很重要.今天碰到记录日志,需要根据内容分别输出到不同的文件. 参考几篇文章: 感觉最详细:http://blog.csdn.net/azheng270/article/ ...

log4j输出多个自定义日志文件,动态配置路径

Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

Java - 自动配置log4j的日志文件路径

目录 1 日志路径带来的痛点 2 log4j.properties文件的配置 3 彻底解决痛点 3.1 单独的Java程序包 (非Java Web项目) 3.2 Web项目 4 附录 - 获取当前项目 ...

记一次log4j日志文件输出错误的解决

log4j错误信息:log4j:ERROR Failed to rename [D:/logs/wmts_] to [D:/logs/wmts_2015-12-21.log ]. 起因:部门网站使用B ...

Log4j 2X 日志文件路径问题

关于路径问题网上说啥的都有,但是也不能说人家错,只能说不适合你这个. 一开始,我用的   ${webapp.root}

input点击链接另一个页面,各种操作。

1.链接到某页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值