91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣將日志添加到Java應(yīng)用程序

454398 ? 來源:wv ? 2019-09-27 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:創(chuàng)建新應(yīng)用程序

啟動Netbeans并選擇創(chuàng)建新的項(xiàng)目。我們要創(chuàng)建一個Maven項(xiàng)目。

選擇Java Maven項(xiàng)目后,為您的項(xiàng)目命名。我叫我的MyFirstLoggingApplication。

步驟2:添加主類-使之可執(zhí)行

您現(xiàn)在應(yīng)該擁有一個全新的干凈應(yīng)用程序。我們首先需要創(chuàng)建一個簡單的Java類,并添加main方法使其可執(zhí)行。我們將使其保持簡單,并添加一些附加內(nèi)容以向控制臺編寫一些內(nèi)容。

創(chuàng)建一個新的Java類

命名它。我的示例是MyLoggingApplication

接下來,我們使用以下代碼添加main方法:

/*

* My application header

*/

package com.thegeekbiker.myfirstloggingapplication;

/**

* @author LordFluffyGoggles

*/

public class MyLoggingApp {

//main method

public static void main(String[] args) {

System.out.println(“Application starting processes here.”); // Display the string.

System.out.println(“Application do more stuff here.”);

System.out.println(“Application end processes here.”);

}

}

運(yùn)行此應(yīng)用程序時,您將看到三行內(nèi)容輸出。第一個代表啟動過程,主要應(yīng)用程序運(yùn)行,最后一個代表應(yīng)用程序完成。

步驟3:添加Log4J日志記錄模塊并配置

我們將使用Log4J模塊。在該站點(diǎn)上:

將日志語句插入代碼中是調(diào)試它的技術(shù)含量較低的方法。這也可能是唯一的方法,因?yàn)檎{(diào)試器并不總是可用或不適用。對于多線程應(yīng)用程序和整個分布式應(yīng)用程序通常是這種情況。

打開pom.xml文件。此文件是Maven如何下載所需的軟件包和模塊供我們使用的方式。

添加以下代碼:

log4j

log4j

1.2.17

如果您現(xiàn)在啟動應(yīng)用程序,您將看到應(yīng)用程序抱怨log4j沒有可用的配置,因此未啟用日志記錄。

有多種配置log4j的方法。我們將使用屬性文件。

在應(yīng)用程序的根文件夾中創(chuàng)建一個名為log4j.properties的文件。這不是理想的選擇,但是在以后的文章中,我將介紹有關(guān)移動資源文件的信息。

現(xiàn)在,我們希望我們的應(yīng)用程序仍將所有日志記錄寫入控制臺,但是我們將繼續(xù)它也可以寫入日志文件。以防萬一您以后需要調(diào)查問題。

將以下部分添加到您的log4j.properties文件中:

# Root logger option

log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=C:logsMyLoggingApp.log

log4j.appender.file.MaxFileSize=5MB

log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

步驟4:將日志記錄添加到應(yīng)用程序中

我們需要通過我們的應(yīng)用程序中的錯誤來知道哪個類。因此,我們需要將記錄器實(shí)例與寫入日志文件的類相關(guān)聯(lián)。對于我們的測試應(yīng)用程序,它非常簡單,因?yàn)槲覀冎挥幸粋€類。

在該類中添加以下行:

final static Logger logger = Logger.getLogger(MyLoggingApp.class);

現(xiàn)在我們需要將log4j配置為讀取我們創(chuàng)建的屬性文件。幸運(yùn)的是,這僅需要一次,而不是每個班級都需要。

main方法中的以下代碼應(yīng)該足以加載屬性文件:

PropertyConfigurator.configure(“l(fā)og4j.properties”);

如果您現(xiàn)在運(yùn)行應(yīng)用程序,但仍然抱怨找不到文件,那么您可能需要將文件復(fù)制到pom.xml文件所在的目錄。如前所述,在以后的文章中,我將討論如何確切指定這些文件的類型。

您可以在應(yīng)用程序的各個級別進(jìn)行登錄。錯誤,警告,調(diào)試,信息等。

我將在此處和此處添加一些信息和調(diào)試信息,以便您了解如何以及在何處使用它。

public class MyLoggingApp {

final static Logger logger = Logger.getLogger(MyLoggingApp.class);

//main method

public static void main(String[] args) {

PropertyConfigurator.configure(“l(fā)og4j.properties”);

if(logger.isInfoEnabled()) logger.info(“Application starting.。.”);

System.out.println(“Application starting processes here.”);

if(logger.isInfoEnabled()) logger.info(“Application started successfully”);

try{

System.out.println(“Application do more stuff here.”);

if(logger.isDebugEnabled()) logger.debug((“Application did something”));

} catch (Exception e){

logger.error(“Something went wrong :”+e);

}

if(logger.isInfoEnabled()) logger.info(“Application finishing up.。.”);

System.out.println(“Application end processes here.”);

if(logger.isInfoEnabled()) logger.info(“Application finished.。.”);

}

}

步驟5:運(yùn)行應(yīng)用程序

剩下的就是運(yùn)行應(yīng)用程序并檢查日志文件。

2015-10-31 22:00:30 INFO MyLoggingApp:18 - Application starting.。.

2015-10-31 22:00:30 INFO MyLoggingApp:20 - Application started successfully

2015-10-31 22:00:30 DEBUG MyLoggingApp:23 - Application did something

2015-10-31 22:00:30 INFO MyLoggingApp:27 - Application finishing up.。.

2015-10-31 22:00:30 INFO MyLoggingApp:29 - Application finished.。.

由于我們的應(yīng)用程序沒有發(fā)生任何錯誤,因此沒有顯示ERROR行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3001

    瀏覽量

    116444
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    SDV域控器日志追蹤與解析技術(shù) – DLT

    ,如何在SDV域控制器開發(fā)測試環(huán)境中,應(yīng)用程序、中間件和內(nèi)核日志與時間戳等信息同步結(jié)合匯聚到同一個日志流,以便更好服務(wù)軟件工廠或“黑燈”測試工廠,亦或?yàn)樵贫薃I平臺提
    的頭像 發(fā)表于 01-21 10:04 ?1847次閱讀
    SDV域控器<b class='flag-5'>日志</b>追蹤與解析技術(shù) – DLT

    rt_printf相關(guān)組件怎么添加

    查詢到printf相關(guān)兩個組件,點(diǎn)擊添加時提示如圖,請教如何添加到項(xiàng)目中。
    發(fā)表于 10-09 07:24

    如何“同步scons 配置至項(xiàng)目”功能添加到編譯步驟中?

    我想將rt-thread studio的“同步scons配置至項(xiàng)目”功能添加到編譯前步驟中 但是我不知道這個功能執(zhí)行了什么指令,在構(gòu)建前步驟中應(yīng)該輸入什么指令,用”scons”命令無法實(shí)現(xiàn)
    發(fā)表于 09-22 07:39

    學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序

    隨著科技的不斷發(fā)展,計(jì)算機(jī)輔助設(shè)計(jì)(CAD)技術(shù)已經(jīng)成為現(xiàn)代工程教育的重要組成部分。SOLIDWORKS作為一款CAD軟件,其教育版云應(yīng)用程序為學(xué)生提供了強(qiáng)大而靈活的設(shè)計(jì)平臺。本文探討
    的頭像 發(fā)表于 09-15 10:39 ?780次閱讀
    學(xué)生適合使用的SOLIDWORKS 云<b class='flag-5'>應(yīng)用程序</b>

    如何移除意外添加到項(xiàng)目中或不再需要的板級標(biāo)注

    在原理圖文檔中調(diào)用 Board Level Annotation Command 時,項(xiàng)目目錄中會創(chuàng)建一個特殊文件,文件名包含項(xiàng)目名稱及 .ANNOTATION 擴(kuò)展名。此文件一旦創(chuàng)建,會影響標(biāo)識符的顯示和處理方式。目前無法通過自動化方式移除該文件,本文向您展示如何手動移除。
    的頭像 發(fā)表于 08-25 11:11 ?1247次閱讀

    VScode使用STM32CUBE CLT如何添加靜態(tài)庫.a文件到工程中?

    我使用VScode搭配ST的插件基于Cmake來編譯和調(diào)試程序,我感覺非常方便。但是遇到一個問題,我不知道如何把.a后綴的靜態(tài)庫文件添加到工程中。有沒有大佬可以幫忙解決一下。
    發(fā)表于 08-12 07:36

    電商API日志分析的實(shí)用工具

    ? 在當(dāng)今數(shù)字化電商時代,API(應(yīng)用程序編程接口)已成為平臺與外部系統(tǒng)交互的核心通道。電商API日志記錄了每一次請求的詳細(xì)信息,包括用戶行為、交易狀態(tài)、錯誤響應(yīng)等。分析這些日志能幫助企業(yè)監(jiān)控性能
    的頭像 發(fā)表于 07-23 15:50 ?658次閱讀
    電商API<b class='flag-5'>日志</b>分析的實(shí)用工具

    FX3 UVC 無法與 Ubuntu 24.04 Cheese 或 Snapshot 相機(jī)應(yīng)用程序配合使用,怎么處理?

    當(dāng)我嘗試使用 Cheese 或 Snapshot 應(yīng)用程序未壓縮的 1080p30 從我的 FX3 UVC+UAC 設(shè)備流式傳輸?shù)?Ubuntu 24.04 機(jī)器時遇到問題。我的 FX3 在
    發(fā)表于 07-16 06:37

    ArkUI-X添加到現(xiàn)有Android項(xiàng)目中

    aar包 在應(yīng)用工程初始化ArkUI-X 通過Android studio 創(chuàng)建一個應(yīng)用工程,將我們上述的aar包添加到工程目錄下的libs目錄中 Application部分 繼承調(diào)用
    發(fā)表于 06-04 22:35

    ArkUI-X添加到現(xiàn)有Android項(xiàng)目中

    aar包 在應(yīng)用工程初始化ArkUI-X 通過Android studio 創(chuàng)建一個應(yīng)用工程,將我們上述的aar包添加到工程目錄下的libs目錄中 Application部分 繼承調(diào)用
    發(fā)表于 05-28 22:44

    ESP32驅(qū)動MFRC522 RFID模塊讀寫IC卡數(shù)據(jù)

    本文介紹ESP32開發(fā)板驅(qū)動MFRC522 RFID模塊,讀取RFID卡原始數(shù)據(jù)、獲取RFID卡的UID,并將個人數(shù)據(jù)添加到RFID卡中。
    的頭像 發(fā)表于 05-28 15:52 ?1434次閱讀
    ESP32驅(qū)動MFRC522 RFID模塊讀寫IC卡數(shù)據(jù)

    怎樣才能安全地按住ctrc +c日志閱讀器然后才能停止并重新啟動日志

    的讀取過程,我無法在 FX3 中操作任何東西,所有命令都不起作用,所有控件寫入/讀取都將不起作用 以下是兩個函數(shù) 我怎樣才能安全地按住 ctrc +c 我的日志閱讀器然后才能停止并重新啟動
    發(fā)表于 05-27 07:11

    如何VCP功能添加到UVC應(yīng)用程序代碼中?

    我正在嘗試 VCP 功能添加到 UVC 應(yīng)用程序代碼中。 我的平臺是CYUSB3011-BZXC UsbUart 示例代碼已添加到現(xiàn)有的 UVC
    發(fā)表于 05-16 06:41

    Java開發(fā)者必備的效率工具——Perforce JRebel是什么?為什么很多Java開發(fā)者在用?

    Perforce JRebel是一款Java開發(fā)效率工具,旨在幫助java開發(fā)人員更快地編寫更好的應(yīng)用程序。JRebel可即時重新加載對代碼的修改,無需重啟或重新部署應(yīng)用程序,就能讓開
    的頭像 發(fā)表于 04-27 13:44 ?857次閱讀
    <b class='flag-5'>Java</b>開發(fā)者必備的效率工具——Perforce JRebel是什么?為什么很多<b class='flag-5'>Java</b>開發(fā)者在用?

    如何ENWF9408AVEF Wi-Fi模塊添加到1064EVK wifi_cli SDK項(xiàng)目中?

    如何 松下 ENWF9408AVEF (NXP 88W8977) Wi-Fi 模塊添加到 1064EVK wifi_cli SDK 項(xiàng)目中? 使用不同的 88W8977 定義初始化失敗
    發(fā)表于 04-02 07:50