java项目打包成可执行jar用log4j将日志写在jar所在目录操作
开发一个demo时想将日志输出到最终打包的jar所在目录,从网上学习实验整理之后的配置如下,
log4j.properties
log4j.rootLogger=INFO,console,logFile log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Threshold=INFO log4j.appender.console.ImmediateFlush=true log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss}[%p]%m%n log4j.appender.logFile=org.apache.log4j.FileAppender log4j.appender.logFile.ImmediateFlush=true log4j.appender.logFile.Append=false log4j.appender.logFile.Encoding=UTF-8 log4j.appender.logFile.File=jarDemo.log log4j.appender.logFile.layout=org.apache.log4j.PatternLayout log4j.appender.logFile.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss}[%p]%m%n
Main.java
privatestaticLoggerlogger=LoggerFactory.getLogger(Main.class); static{ Stringpath=newFile("").getAbsolutePath(); FileAppenderappender=(FileAppender)org.apache.log4j.Logger.getRootLogger().getAppender("logFile"); appender.setFile(path+File.separator+"jarDemo.log"); }
最终打包成jar执行时,将会在jar文件所在目录生产一个jarDemo.log的日志文件,如果时用idea运行,这个日志文件会在源码所在项目的根目录。
补充知识:springboot工程打成jar包后运行时,读取外部的配置文件
我们在使用“packagespring-boot:repackage”命令,将工程打包成jar包之后,在部署到服务器时,有些配置需要修改,尤其是部署不同的环境时,像数据库连接等参数都是需要修改的,为了不是每个服务器上都重新打包,就需要在jar包外部放置配置文件,jar包运行时优先读取外部的配置文件,以windows系统下为例,在目录“D:\package”目录下运行,
具体方法如下:
在D:\package目录下新建lib目录,将打好的jar包放进去
在D:\package目录下,将配置文件放进去,例如application.properties
在D:\package目录下创建run.bat,内容如下:
java-jar-Dfile.encoding=UTF-8lib/xxx.jarcom.xxx.App
双击run.bat运行
原理说明:
springboot程序会从下面这些路径来加载application.properties配置文件(优先级按前后顺序)
jar包同级目录下的/config目录
jar包同级目录
classpath里的/config目录
classpath同级目录
以上这篇java项目打包成可执行jar用log4j将日志写在jar所在目录操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。