当前位置: 首页 > 编程笔记 >

java项目打包成可执行jar用log4j将日志写在jar所在目录操作

邓昊天
2023-03-14
本文向大家介绍java项目打包成可执行jar用log4j将日志写在jar所在目录操作,包括了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-dd HH: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-dd HH:mm:ss} [%p] %m%n

Main.java

private static Logger logger = LoggerFactory.getLogger(Main.class);

 static {
  String path = new File("").getAbsolutePath();

  FileAppender appender = (FileAppender) org.apache.log4j.Logger.getRootLogger().getAppender("logFile");
  appender.setFile(path + File.separator + "jarDemo.log");
 }

最终打包成jar执行时,将会在jar文件所在目录生产一个jarDemo.log的日志文件,如果时用idea运行,这个日志文件会在源码所在项目的根目录。

补充知识:springboot工程打成jar包后运行时,读取外部的配置文件

我们在使用“package spring-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-8 lib/xxx.jar com.xxx.App

双击run.bat运行

原理说明:

springboot 程序会从下面这些路径来加载application.properties 配置文件(优先级按前后顺序)

jar包同级目录下的/config目录

jar包同级目录

classpath里的/config目录

classpath 同级目录

以上这篇java项目打包成可执行jar用log4j将日志写在jar所在目录操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍spring boot打包成可执行jar包,包括了spring boot打包成可执行jar包的使用技巧和注意事项,需要的朋友参考一下 在使用spring boot进行打包的时候出现了一些问题,不是说找不到主类,就是说spring初始化时有些类没有加载。 下面介绍一下如何解决。 这样就能够打出jar包了。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我有一个由3个模块组成的分级项目: (无依赖项) (依赖于) (取决于两个模块)

  • java新手提问,请各位大佬帮忙解答为谢!!! 在java中引入第三方jar包,使用gradle将我的项目打包成可执行的jar时并运行时报错: 第三方给的这个jar包结构如下: 我理解NoClassDefFoundError:javax/xml/transform/e应该是class文件的路径不对,按道理是jar包中class的路径javax/xml/transform/e,但是为什么看到的是ja

  • 问题内容: 有没有办法将所有jar文件包含在类路径的目录中? 我正在尝试,但找不到这些jar中肯定存在的类文件。我是否需要将每个jar文件分别添加到类路径? 问题答案: 使用Java 6或更高版本时,选项支持通配符。请注意以下几点: 使用双引号(”) 使用,不 windows Linux 这类似于Windows,但使用代替。如果不能使用通配符,则bash允许使用以下语法(其中lib包含所有Java

  • 是否有可能为Spring Boot可执行JAR设置工作目录? 这没有帮助。

  • 问题内容: 民间, 我正在使用Eclipse开发Java应用程序。Maven用于创建最终的jar文件。 在应用程序中,我使用一些图像图标作为按钮。按照Internet上的一些说明,我通过单击项目创建了“源”目录。我将源目录命名为“ res”,并将图像移动到该目录。 当应用未打包为jar文件时,此方法就可以正常工作(非常适合调试)。但是,当maven打包它时,我看到图像放在jar文件的根目录中。以下