java指定日志配置路径命令

java指定日志配置路径命令,第1张

单独的Java程序包, 需要通过命令java -jar或java -cp的方式启动

我们可以在启动命令中加入系统运行时变量, 在log4j加载配置文件之前通过System.getProperties(“path”)读绝册坦取此变量, 即可实现姿册灵活加载当前路径.

(1) 启动脚本设置并桐:

假设当前项目的目录结构为:

/Projects/KafkaConsumer

丨 bin 项目的启动脚本

丨 conf 项目的配置文件

丨 lib 项目的其他依赖包

丨 bogs 项目的日志输出路径

启动脚本位于bin目录下, 内容示例如下:

# 获取当前脚本所处的目录, 然后进入其上级目录, 最后pwd输出该目录, 最终的结果是/Project/KafkaConsumerbase_dir=$(cd `dirname $0`cd ..pwd)# 获取Java运行程序的位置, 并指定主类java_bin=$(which java)main_class=”org.shoufeng.elastic.ConsumerMain”# 通过-cp、扩展CLASSPATH、指定主类的方式启动项目, # 并通过“-D”的方式向此程序的运行时环境中设置当前项目的路径,# 即可在程序中通过System.getProperty(“base.dir”)获取此路径 nohup ${java_bin} -Dbase.dir=${base_dir} -cp ${CLASSPATH}:${base_dir}/conf:${base_dir}/lib/* ${main_class} >>/dev/null &

(2) Java程序读取变量:

实log4j的FileAppender本身支持动态设置文件路径, 如:

log4j.appender.logfile.File=${base.log}/logs/app.log

其中“${base.log}”是一个变量, 会被System Property中的base.log的值代替, 代码中的使用方式为:

public static void main(String[] args) { // 获取系统运行时变量中的日志文件的输出路径 // 此变量需要在启动命令中通过-D的方式设置 String baseDir = System.getProperty(“b

首先,配置成每天生成的话,.log文件的路径是不会改变的,比如,日志文件是log.log,那么这个文件在第二天会被备份为2013-01-07.log,但是同时会再生成一个log.log文件,所以不会影响你的路径

其次,如果这个日志文件一直被系统在添加日志的话,那么该文件应该是被加锁的,其他程序只能读不能修高塌改和删除,所以如果该情况下你一定要隔几天清空一次,一是修早李改生成日志的系统,让其定时清除日志文件内容,二是写脚本或程序,先停掉系统,再清空日志,然后重启系统。这种方法,不建议采用。

强烈建议,采用第一种方法,然后修改你的读取日志的程序,每天读取一下前一天生成的日志文件内容就可以了,因为备份文件是用日期命名的,利用这个规律陆念迟,很容易就可以获取到要读取的文件名了

用log4j

配置文件:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">

 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

 

    <appender name="RollingAppender" class="org.apache.log4j.DailyRollingFileAppender">

       <param name="File" value="logs/app.log" />

       <param name="Encoding" value="UTF-8" />

       <param name="DatePattern" value="'.'yyyy-MM-dd" />

       <layout class="org.apache.log4j.PatternLayout">

          <param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>       告氏正   

       </layout>

    </appender>

 

    <root>

        <priority value="DEBUG"袜悔/>

        <appender-ref ref="RollingAppender" />

    </root>

     

</log4j:configuration>

运用

先实例核厅化

运用


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12553151.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存