java启动时怎么自定义配置文件路径和log4j2.xml位置

发布时间:2022-08-27 11:34:06 作者:iii
来源:亿速云 阅读:154

本文小编为大家详细介绍“java启动时怎么自定义配置文件路径和log4j2.xml位置”,内容详细,步骤清晰,细节处理妥当,希望这篇“java启动时怎么自定义配置文件路径和log4j2.xml位置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

java启动时自定义配置文件路径,自定义log4j2.xml位置

启动时指定配置文件位置

项目打成jar包后,配置文件会一起打包到jar包的classes下,这就是所说的classpath。比如spring boot 就是在jar\BOOT-INF\classes下

然后在jar文件运行时,就会自动去jar文件内找配置文件,这对我们部署服务是不利的,通常都是将配置文件放在外面,方便修改配置内容。

有一种说法:说配置文件加载顺序为(由高到低)

经验证

application.properties   或者 application.yml 是上面的加载顺序,但是我在搭建spring boot 项目时 【jar包同级目录下的config文件夹下配置】优先级是 > 【classpath下配置】,但是 【jar包同级目录下配置】优先级并没有【classpath下配置】的高。。不知为何。不过把配置文件放到  jar包同级目录下的config文件夹是能够解决需求的。

后来又发现一个问题

外部log4j2.xml 加载不到,不管是放在jar同级目录,还是jar包同级目录下的config,都不起作用,每次启动都加在 jar包内的log4j2.xml ,查了很多资料都说不到点上。

后面终于找到解决办法了,就是在启动jar文件的时候手动加载,如下(start.sh内容)

name="my-web"
pid=`ps -ef | grep ${name} | grep -v grep |awk '{print $2}'`
if [ $pid ]; then
    echo  ${name}  is  running pid=$pid
    kill -9 $pid
fi
nohup  java -Xms100m -Xmx100m  -jar ../${name}-0.0.1-SNAPSHOT.jar --logging.config=../config/log4j2.xml > ../logs/${name}.log & tail -f ../logs/${name}.log

就是加上 【--logging.config=config/log4j2.xml】 来制定加载的 log4j2.xml

如果启动不了

pom 可能没有加上依赖

<!--  日志依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

最后附上整个文件的目录结构

my-web
----bin
    ----start.sh
    ----stop.sh
----config
    ----log4j2.xml
    ----application.yml
    ----application.properties
----logs
----my-web.jar

java服务启动指定配置文件路径

java启动时怎么自定义配置文件路径和log4j2.xml位置

读到这里,这篇“java启动时怎么自定义配置文件路径和log4j2.xml位置”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. phpmyadmin的配置文件放在什么位置
  2. linux中mysql的配置文件在什么位置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java log4j2.xml

上一篇:C++进程创建和进程ID标识的方法是什么

下一篇:axios拦截器管理类链式调用怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》