步驟1:創(chuàng)建新應(yīng)用程序
啟動(dòng)Netbeans并選擇創(chuàng)建新的項(xiàng)目。我們要?jiǎng)?chuàng)建一個(gè)Maven項(xiàng)目。
選擇Java Maven項(xiàng)目后,為您的項(xiàng)目命名。我叫我的MyFirstLoggingApplication。
步驟2:添加主類(lèi)-使之可執(zhí)行
您現(xiàn)在應(yīng)該擁有一個(gè)全新的干凈應(yīng)用程序。我們首先需要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的Java類(lèi),并添加main方法使其可執(zhí)行。我們將使其保持簡(jiǎn)單,并添加一些附加內(nèi)容以向控制臺(tái)編寫(xiě)一些內(nèi)容。
創(chuàng)建一個(gè)新的Java類(lèi)
命名它。我的示例是MyLoggingApplication
接下來(lái),我們使用以下代碼添加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)用程序時(shí),您將看到三行內(nèi)容輸出。第一個(gè)代表啟動(dòng)過(guò)程,主要應(yīng)用程序運(yùn)行,最后一個(gè)代表應(yīng)用程序完成。
步驟3:添加Log4J日志記錄模塊并配置
我們將使用Log4J模塊。在該站點(diǎn)上:
將日志語(yǔ)句插入代碼中是調(diào)試它的技術(shù)含量較低的方法。這也可能是唯一的方法,因?yàn)檎{(diào)試器并不總是可用或不適用。對(duì)于多線(xiàn)程應(yīng)用程序和整個(gè)分布式應(yīng)用程序通常是這種情況。
打開(kāi)pom.xml文件。此文件是Maven如何下載所需的軟件包和模塊供我們使用的方式。
添加以下代碼:
log4j
log4j
1.2.17
如果您現(xiàn)在啟動(dòng)應(yīng)用程序,您將看到應(yīng)用程序抱怨log4j沒(méi)有可用的配置,因此未啟用日志記錄。
有多種配置log4j的方法。我們將使用屬性文件。
在應(yīng)用程序的根文件夾中創(chuàng)建一個(gè)名為log4j.properties的文件。這不是理想的選擇,但是在以后的文章中,我將介紹有關(guān)移動(dòng)資源文件的信息。
現(xiàn)在,我們希望我們的應(yīng)用程序仍將所有日志記錄寫(xiě)入控制臺(tái),但是我們將繼續(xù)它也可以寫(xiě)入日志文件。以防萬(wàn)一您以后需要調(diào)查問(wèn)題。
將以下部分添加到您的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)用程序中
我們需要通過(guò)我們的應(yīng)用程序中的錯(cuò)誤來(lái)知道哪個(gè)類(lèi)。因此,我們需要將記錄器實(shí)例與寫(xiě)入日志文件的類(lèi)相關(guān)聯(lián)。對(duì)于我們的測(cè)試應(yīng)用程序,它非常簡(jiǎn)單,因?yàn)槲覀冎挥幸粋€(gè)類(lèi)。
在該類(lèi)中添加以下行:
final static Logger logger = Logger.getLogger(MyLoggingApp.class);
現(xiàn)在我們需要將log4j配置為讀取我們創(chuàng)建的屬性文件。幸運(yùn)的是,這僅需要一次,而不是每個(gè)班級(jí)都需要。
main方法中的以下代碼應(yīng)該足以加載屬性文件:
PropertyConfigurator.configure(“l(fā)og4j.properties”);
如果您現(xiàn)在運(yùn)行應(yīng)用程序,但仍然抱怨找不到文件,那么您可能需要將文件復(fù)制到pom.xml文件所在的目錄。如前所述,在以后的文章中,我將討論如何確切指定這些文件的類(lèi)型。
您可以在應(yīng)用程序的各個(gè)級(jí)別進(jìn)行登錄。錯(cuò)誤,警告,調(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)用程序沒(méi)有發(fā)生任何錯(cuò)誤,因此沒(méi)有顯示ERROR行。
-
JAVA
+關(guān)注
關(guān)注
20文章
3012瀏覽量
116874
發(fā)布評(píng)論請(qǐng)先 登錄
將 docker-ce 添加到 yocto LLDP 5.15-71 中,顯示錯(cuò)誤如何解決?
SDV域控器日志追蹤與解析技術(shù) – DLT
rt_printf相關(guān)組件怎么添加?
如何將“同步scons 配置至項(xiàng)目”功能添加到編譯步驟中?
學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序
如何移除意外添加到項(xiàng)目中或不再需要的板級(jí)標(biāo)注
VScode使用STM32CUBE CLT如何添加靜態(tài)庫(kù).a文件到工程中?
電商API日志分析的實(shí)用工具
FX3 UVC 無(wú)法與 Ubuntu 24.04 Cheese 或 Snapshot 相機(jī)應(yīng)用程序配合使用,怎么處理?
ArkUI-X添加到現(xiàn)有Android項(xiàng)目中
ArkUI-X添加到現(xiàn)有Android項(xiàng)目中
ESP32驅(qū)動(dòng)MFRC522 RFID模塊讀寫(xiě)IC卡數(shù)據(jù)
怎樣將日志添加到Java應(yīng)用程序
評(píng)論