欢迎光临

我们一直在努力
当前位置:首页 > 编程技术 >

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

日期:
后台-插件-广告管理-首页/栏目/内容广告位一(PC)
后台-插件-广告管理-首页/栏目/内容广告位一(手机)
目录
  • Java启动时自定义配置文件路径,自定义log4j2.XML位置
    • 启动时指定配置文件位置
    • 有一种说法:说配置文件加载顺序为(由高到低)
    • 经验证
    • 后来又发现一个问题
    • 如果启动不了
  • java服务启动指定配置文件路径

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

    启动时指定配置文件位置

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

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

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

    • jar包同级目录下的config文件夹下配置
    • jar包同级目录下配置
    • classpath下config目录下配置
    • classpath下配置

    经验证

    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-starterjs</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</grojsupId>
          <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服务启动指定配置文件路径

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    后台-插件-广告管理-首页/栏目/内容广告位二(PC)
    后台-插件-广告管理-首页/栏目/内容广告位二(手机)
    后台-插件-广告管理-内容广告位三(PC)
    后台-插件-广告管理-内容广告位三(手机)

    相关阅读

    后台-插件-广告管理-内容广告位四(PC)
    后台-插件-广告管理-内容广告位四(手机)

    热门文章

    后台-插件-广告管理-侧边广告位一(PC)
    后台-插件-广告管理-侧边广告位一(手机)
    • HTML 表单组件实例代码

    • HTML 表单用于搜集不同类型的用户输入。下文通过代码给大家分享html 表单组件实例代码,感兴趣的朋友参考下吧 废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE
    • html2canvas 将html代码转为图片的使用方法

    • 转换代码到图片使用 html2canvas,这是一个非常著名的从浏览器网页截图的开源库,使用很方便,功能也很强大。 使用 html2canvas http:// html2canvas 的使用非常简单,简单
    • HTML网页中插入视频的方法小结

    • 现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera、Mozilla、Chrome),支持H.264的(Safari、IE 9、Chrome),都不支持的(IE6、
    • HTML实现文本框只读不能修改其中的内容

    • 废话不多说了,直接给大家贴代码了,具体代码如下所示: <!--方法1:>http:// 当鼠标放不上就离开焦点 --> <input type="text" name="input1" value=http://www.cppcns.com/web
    • 移动端专用的meta标签设置大全

    • 前言 之前学习前端中,对meta标签的了解仅仅只是这一句。 <meta charset="UTF-8"> 但是打开任意的网站,其head标签内都有一列的meta标签。比如我们我们网站,但是自己却很不熟
    后台-插件-广告管理-侧边广告位二(PC)
    后台-插件-广告管理-侧边广告位二(手机)

    最新文章

    • 在Asp.net core项目中使用WebSocket

    • 今天小试了一下在ASP.NET core中使用websocket,这里记录一下: 在 Startup 类的 Configure 方法中添加 WebSocket 中间件。 app.UseWebSockets(); 它也可以传入一些参数 app.Us
    • Vue快速理解事件绑定是什么

    • 目录一、监听事件二、事件修饰符1、stop修饰符阻止事件冒泡2、capture修饰符3、self修饰符4、prevent修饰符5、键盘事件修饰符6、鼠标事件修饰符一、监听事件 监听事件一般
    • C#实现模拟ATM自动取款机功能

    • 目录(1)关于用户帐号的类:Account(2)关于银行数据库的类:BankDatabase(3)关于ATM屏幕显示的类:Screen(4)关于ATM键盘的类:Keypad(5)关于进钞、出钞口的类:DepositSlot(6)关于ATM
    • Java设计模式之抽象工厂模式浅析讲解

    • 1.介绍 当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。 2.如何实现 1)抽象产品--Car 2)具体产品--BYDCar、TSLCar 3)抽象
    • 如何动态替换Spring容器中的Bean

    • 目录动态替换Spring容器中的Bean原因方案实现Spring中的bean替换问题动态替换Spring容器中的Bean 原因 最近在编写单测时,发现使用 Mock 工具预定义 Service 中方法的行为特
    • C#优雅的实现INotifyPropertyChanged接口

    • INotifyPropertyChanged接口在wpF或WinFrom程序中使用还是经常用到,常用于通知界面属性变更。标准写法如下: class NotifandroidyObject : INotifyPropertyChanged {
    后台-插件-广告管理-侧边广告位三(PC)
    后台-插件-广告管理-侧边广告位三(手机)