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

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

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

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

454398 ? 來源:wv ? 2019-09-27 10:22 ? 次閱讀

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

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

選擇Java Maven項目后,為您的項目命名。我叫我的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īng)用程序時,您將看到三行內(nèi)容輸出。第一個代表啟動過程,主要應(yīng)用程序運行,最后一個代表應(yīng)用程序完成。

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

我們將使用Log4J模塊。在該站點上:

將日志語句插入代碼中是調(diào)試它的技術(shù)含量較低的方法。這也可能是唯一的方法,因為調(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)用程序中的錯誤來知道哪個類。因此,我們需要將記錄器實例與寫入日志文件的類相關(guān)聯(lián)。對于我們的測試應(yīng)用程序,它非常簡單,因為我們只有一個類。

在該類中添加以下行:

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

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

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

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

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

您可以在應(yīng)用程序的各個級別進行登錄。錯誤,警告,調(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īng)用程序

剩下的就是運行應(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2943

    瀏覽量

    104096
收藏 人收藏

    評論

    相關(guān)推薦

    日志框架簡介-Slf4j+Logback入門實踐

    結(jié)果不受日志的有無影響,但沒有日志應(yīng)用程序是不完整的,甚至可以說是有缺陷的。優(yōu)秀的日志系統(tǒng)可以 記錄操作軌跡 、 監(jiān)控系統(tǒng)運行狀態(tài) 和 解決系統(tǒng)故障 。
    的頭像 發(fā)表于 07-30 10:00 ?856次閱讀
    <b class='flag-5'>日志</b>框架簡介-Slf4j+Logback入門實踐

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    Java Web和Java是兩個不同的概念,它們在功能、用途和實現(xiàn)方式上存在一些區(qū)別,下面詳細介紹它們之間的區(qū)別。 1. 功能和用途: – Java是一種編程語言,它提供了一種用于開
    的頭像 發(fā)表于 07-16 13:35 ?330次閱讀
    華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別

    請問如何cURL庫添加到ESP8266_RTOS_SDK項目中?

    我想使用 curl api,但我不知道如何添加到我的項目中,這樣當我將該庫的頭文件包含在我的項目中時它就不會抱怨。 有誰知道如何正確地第三方庫添加到ESP8266_RTOS_SD
    發(fā)表于 07-09 07:52

    STM32F746 QSPI的Flash擴展后,添加到工程下載發(fā)現(xiàn)報錯,為什么?

    使用 W25Q128 模塊 ,使用的是微雪STM32F746IGT6的開發(fā)板,在QSPI進行Flash擴展了解發(fā)現(xiàn)需要做一個.FLM的Flash編程算法,我找一個STM32H7的進行修改,然后添加到工程下載發(fā)現(xiàn)報錯,無法加載算法,有大佬自己做過Flash編程算法嗎,求解
    發(fā)表于 04-17 06:31

    怎么把stlink server添加到keil里?

    stlink server的使用說明里面是支持keil5.25的。怎么把stlink server添加到keil里?
    發(fā)表于 03-27 07:28

    TC399 adc能添加到同一個隊列中并得到結(jié)果嗎?加入隊列是否有任何限制?

    添加到隊列中并得到結(jié)果。 我的疑問是,有了這些不同的頻道和組,我還能把它們添加到同一個隊列中并得到結(jié)果嗎?加入隊列是否有任何限制?
    發(fā)表于 03-04 06:33

    如何F-RAM?添加到現(xiàn)有的PSoC? Creator項目?

    我們在PSoC? Creator 中有一個 PSoC6 項目,并希望 QSPI F-RAM?存儲器添加到TDA5235_868_5_BOARD中。我很難找到如何在F-RAM? PSoC
    發(fā)表于 03-01 12:14

    FCX3是否具有PTS或SCR添加到映像幀的功能?

    問題 1) FCX3是否具有PTS或SCR添加到映像幀的功能,如隨附的USB規(guī)范中所述? 如果可能,請?zhí)峁┯嘘P(guān)如何配置每個 PTS 和 SCR 的詳細信息。 問題 2) CAN FCX3 支持1080x1280@120fps傳輸帶寬? 如果這很困難,請讓我知道實際使用
    發(fā)表于 02-26 08:23

    如何TC1798器件添加到MDK KEIL?

    我正在嘗試使用 KEIL MDK(μVision)為英飛凌TC1798編程,但我不確定如何TC1798器件添加到MDK KEIL。 誰能幫我拿到 .pack 或者.zip 對于 TC1798?
    發(fā)表于 02-01 08:18

    如何CMSIS DSP庫添加到XMC4700 Relax Kit的Dave CE項目中?

    我剛開始研究 Dave,這對我來說還是個新事物。 我創(chuàng)建了一個 Dave CE 項目,并能夠啟動并運行 blink 代碼。 我想將 CMSIS DSP 庫添加到我的項目中,并使用庫中的 DSP 函數(shù)
    發(fā)表于 02-01 07:11

    u8g2應(yīng)用程序無法在moduStoolBox中構(gòu)建是為什么?

    一些幫助。 u8g2 應(yīng)用說明書 Step2 問題:它說把這個庫添加到應(yīng)用程序中。 這是庫管理器中的 SSD1306 OLED 控制器庫嗎? Step3 問題:它顯示從 github 向應(yīng)用程序
    發(fā)表于 01-24 07:03

    eclipse怎么運行java項目

    代碼添加到項目中。您可以通過右鍵單擊項目名稱,然后選擇“New” > “Class”來創(chuàng)建一個新的Java類。在彈出的對話框中,輸入類的名稱和
    的頭像 發(fā)表于 12-06 11:25 ?1699次閱讀

    開發(fā)java應(yīng)用程序的基本步驟是

    ava是一種面向?qū)ο蟮木幊陶Z言,廣泛用于開發(fā)各種類型的應(yīng)用程序。在開發(fā)Java應(yīng)用程序時,有一些基本步驟需要遵循,以確保應(yīng)用程序的正確性和可靠性。 1.確定需求:這是開發(fā)任何
    的頭像 發(fā)表于 11-28 16:52 ?1311次閱讀

    安裝python怎么添加到環(huán)境變量

    Python是一種簡單易學的腳本語言,廣泛應(yīng)用于開發(fā)各種類型的應(yīng)用程序。為了在Windows操作系統(tǒng)上使用Python的命令行工具,需要將Python添加到系統(tǒng)的環(huán)境變量中。本文向您詳細介紹如何在
    的頭像 發(fā)表于 11-23 16:40 ?2176次閱讀

    Mentor PADSPCB封裝直接添加到PCB的教程

    一般,批量添加封裝到PCB板上有以下方法: 第一步:點擊菜單欄“ECO模式--添加元器件”如圖,點擊以后彈出如圖界面。 1)元件類型 PCB封裝必須得添加完元件類型,才能通過ECO模式添加到
    的頭像 發(fā)表于 11-07 07:45 ?4290次閱讀
    Mentor PADS<b class='flag-5'>將</b>PCB封裝直接<b class='flag-5'>添加到</b>PCB的教程