最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

log4j如何根據(jù)變量動態(tài)生成文件名

 更新時間:2021年12月27日 11:37:37   作者:追風(fēng)夏  
這篇文章主要介紹了log4j如何根據(jù)變量動態(tài)生成文件名方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

根據(jù)變量動態(tài)生成文件名

簡單的log4j設(shè)置

一般情況下,log4j配置文件簡單的設(shè)置為:

log4j.rootLogger=debug,stdout,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=test.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=ex.log4j.ExPatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c %5p  - %m%n
log4j.appender.R.MaxBackupIndex=1

簡單實例

java代碼如下:

public class LogTest {
static Logger log = Logger.getLogger(LogTest.class);
public static void main(String[] args) throws IOException {
PropertyConfigurator.configure("log4j.properties");
log.debug("helo");
}
}

一般如上設(shè)置即可滿足簡單的log4j需求。

如果需要根據(jù)程序中的變量,將日志打到不同的文件中時,(如:根據(jù)某個ID,這樣對于大量日志時更加容易查找到想要的日志)

只需在java代碼中過去到所配置的FileAppender,然后serFile來修改文件名。

java代碼如下:

FileAppender appender = (FileAppender) log.getRootLogger().getAppender("R");
appender.setFile(filePath/fileName);
appender.activateOptions();

日志打印前,設(shè)置以上代碼,即可。

注意:加上 appender.activateOptions(); 可以使得后面打印的日志不會將之前的日志覆蓋。

log4j動態(tài)文件名

在項目中,對log的輸出有多種多樣的要求,下面具體分析一下動態(tài)log文件名輸出的。

一、按照用戶ID來生成log

這種情況,可以根據(jù)每個用戶ID來動態(tài)生成logger。

代碼如下:

import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
public class LoggerUtil {
   
    public static Logger getLoggerByName(String name) {
        // 生成新的Logger
        // 如果已經(jīng)有了一個Logger實例返回現(xiàn)有的
        Logger logger = Logger.getLogger(name);
        // 清空Appender。特別是不想使用現(xiàn)存實例時一定要初期化
        logger.removeAllAppenders();
        // 設(shè)定Logger級別。
        logger.setLevel(Level.DEBUG);
        // 設(shè)定是否繼承父Logger。
        // 默認為true。繼承root輸出。
        // 設(shè)定false後將不輸出root。
        logger.setAdditivity(true);
        // 生成新的Appender
        FileAppender appender = new RollingFileAppender();
        PatternLayout layout = new PatternLayout();
        // log的輸出形式
        String conversionPattern = "[%d] %p %t %c - %m%n";
        layout.setConversionPattern(conversionPattern);
        appender.setLayout(layout);
        // log輸出路徑
        // 這里使用了環(huán)境變量[catalina.home],只有在tomcat環(huán)境下才可以取到
        String tomcatPath = java.lang.System.getProperty("catalina.home");
        appender.setFile(tomcatPath + "/logs/" + name + ".log");
        // log的文字碼
        appender.setEncoding("UTF-8");
        // true:在已存在log文件后面追加 false:新log覆蓋以前的log
        appender.setAppend(true);
        // 適用當前配置
        appender.activateOptions();
        // 將新的Appender加到Logger中
        logger.addAppender(appender);
        return logger;
    }
}

二、在batch程序中,通過一個設(shè)定來實現(xiàn)每個batch

文件名不同的設(shè)定。

log.xml定義

    <appender name="daily" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="/opt/tuhan.crm/batch/log/${tuhan.crm.log.name}.log" />
        <param name="threshold" value="debug"/>
        <param name="DatePattern" value="yyyyMMdd"/>
        <param name="append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MMM-dd HH:mm:ss,SSS}\t[%-5p]\t(%c:%L)\t%m%n"/>
        </layout>
    </appender>

log4j可以接受自定義環(huán)境變量,注意下面行【${tuhan.crm.log.name}】就是自定義環(huán)境變量

<param name="file" value="/opt/tuhan.crm/batch/log/${tuhan.crm.log.name}.log" />

那么環(huán)境變量如何設(shè)置呢,有2種方法

1.Java中設(shè)定(在使用配置文件之前, 要在程序中聲明這些變量):

System.setProperty("tuhan.crm.log.name", "batch001");

2.在JVM設(shè)定

java -Xmx512M -Dtuhan.crm.log.name=batch001 com.stu.TestBatch001

三、在batch程序中,通過多個設(shè)定來實現(xiàn)每個batch

文件名不同的設(shè)定。

動態(tài)的配置文件路徑: (log4j可以接受URL)

java.net.URL URL = consandpatt.class.getResource("/com/test/java/log/config/log4jConfig.properties");
PropertyConfigurator.configure(URL);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea2020.2卡死在reading maven projects

    idea2020.2卡死在reading maven projects

    這篇文章主要介紹了idea2020.2卡死在reading maven projects,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Spring高級注解@PropertySource詳細解讀

    Spring高級注解@PropertySource詳細解讀

    這篇文章主要介紹了Spring高級注解@PropertySource詳細解讀,@PropertySource注解用于指定資源文件讀取的位置,它不僅能讀取properties文件,也能讀取xml文件,并且通過YAML解析器,配合自定義PropertySourceFactory實現(xiàn)解析yaml文件,需要的朋友可以參考下
    2023-11-11
  • Java基于接口實現(xiàn)模擬動物聲音代碼實例

    Java基于接口實現(xiàn)模擬動物聲音代碼實例

    這篇文章主要介紹了Java基于接口實現(xiàn)模擬動物聲音代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • java方法重寫時需要注意的問題

    java方法重寫時需要注意的問題

    大家好,本篇文章主要講的是java方法重寫時需要注意的問題,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 使用@PathVariable接收兩個參數(shù)

    使用@PathVariable接收兩個參數(shù)

    這篇文章主要介紹了使用@PathVariable接收兩個參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java實現(xiàn)十進制與二進制互轉(zhuǎn)的示例詳解

    Java實現(xiàn)十進制與二進制互轉(zhuǎn)的示例詳解

    這篇文章主要為大家詳細介紹了Java如何實現(xiàn)十進制與二進制的互轉(zhuǎn),文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-11-11
  • Jenkins 關(guān)閉和重啟詳細介紹及實現(xiàn)

    Jenkins 關(guān)閉和重啟詳細介紹及實現(xiàn)

    這篇文章主要介紹了Jenkins的關(guān)閉、重啟的相關(guān)資料,用jar -jar jenkins.war來啟動jenkins服務(wù)器,那么我們?nèi)绾侮P(guān)閉或者重啟jenkins服務(wù)器呢,這里就給出實現(xiàn)的方法,需要的朋友可以參考下
    2016-11-11
  • SpringBoot停止啟動時測試檢查rabbitmq操作

    SpringBoot停止啟動時測試檢查rabbitmq操作

    這篇文章主要介紹了SpringBoot停止啟動時測試檢查rabbitmq操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Mybatis動態(tài)SQL之if、choose、where、set、trim、foreach標記實例詳解

    Mybatis動態(tài)SQL之if、choose、where、set、trim、foreach標記實例詳解

    動態(tài)SQL就是動態(tài)的生成SQL。接下來通過本文給大家介紹Mybatis動態(tài)SQL之if、choose、where、set、trim、foreach標記實例詳解的相關(guān)知識,感興趣的朋友一起看看吧
    2016-09-09
  • Java實例講解多態(tài)數(shù)組的使用

    Java實例講解多態(tài)數(shù)組的使用

    本文章向大家介紹Java多態(tài)數(shù)組,主要包括Java多態(tài)數(shù)組使用實例、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下
    2022-05-05

最新評論

德安县| 江西省| 尚志市| 巴青县| 突泉县| 如东县| 通化市| 龙泉市| 桐柏县| 华坪县| 纳雍县| 文山县| 旺苍县| 磐安县| 长岛县| 抚顺县| 镶黄旗| 中卫市| 苍溪县| 信阳市| 都安| 陇南市| 吉安县| 司法| 鱼台县| 建平县| 吉首市| 乳源| 崇义县| 博乐市| 固始县| 桐梓县| 延津县| 临湘市| 湾仔区| 沂南县| 佛山市| 东源县| 祁阳县| 芦山县| 天等县|