LOGGING FRAMEWORKS IN JAVA

最近看到一本小書《LOGGING FRAMEWORKS IN JAVA》船侧,寫些代碼練個手遂跟。

image.png

主文件:

package com.example.demo;
import org.slf4j.LoggerFactory;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;

public class DemoApplication {
    private static final Logger logger = Logger.getLogger(DemoApplication.class.getName());
    private static final LogManager logManager = LogManager.getLogManager();
    private static final Logger LOGGER = Logger.getLogger("com.example.demo");
    private static final org.slf4j.Logger log = LoggerFactory.getLogger(DemoApplication.class);

    static {
        try {
            logManager.readConfiguration(new FileInputStream("D:\\test\\demo\\src\\main\\resources\\logging.properties"));
        } catch (IOException exception) {
            LOGGER.log(Level.SEVERE, "Error in loading configuration", exception);
        }
    }
    public static void main(String[] args) throws SecurityException, IOException {
        // final Logger logger = Logger.getLogger(DemoApplication.class.getName());
        FileHandler fileHandler = new FileHandler();
        logger.addHandler(fileHandler);
        logger.setLevel(Level.ALL);
        System.out.println("Hi! It's my first Java Program.");
        logger.info("My first Log statement.");
        logger.severe("Severe message");
        logger.warning("Warning Message");
        logger.severe("Another Severs message");
        int a = 5;
        int b = 2;
        try {
            int c = a / b;
            System.out.println("result: " + c);
        } catch (ArithmeticException ex) {
            logger.log(Level.SEVERE, "Arithmethic Exception", ex);
        }
        int arr[] = {1, 2, 3};
        try {
            for (int i = 3; i > 0; i--) {
                System.out.println(arr[i]);
            }
        } catch (ArrayIndexOutOfBoundsException e) {
            logger.log(Level.SEVERE, "Array Index is out of bounds.", e);
        }
    }

}

日志配置文件:

handlers=java.util.logging.ConsoleHandler
.level=INFO
com.example.demo.level= ALL

java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


java.util.logging.FileHandler.level = SEVERE
java.util.logging.FileHandler.pattern = myFile.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

輸出:

D:\Java\jdk17\bin\java.exe "-javaagent:D:\JetBrains\IntelliJ IDEA Community Edition 2024.3.1.1\lib\idea_rt.jar=1589:D:\JetBrains\IntelliJ IDEA Community Edition 2024.3.1.1\bin" -Dfile.encoding=UTF-8 -classpath D:\test\demo\target\classes;C:\Users\ccc\.m2\repository\org\springframework\boot\spring-boot-starter\3.3.7\spring-boot-starter-3.3.7.jar;C:\Users\ccc\.m2\repository\org\springframework\boot\spring-boot\3.3.7\spring-boot-3.3.7.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-context\6.1.16\spring-context-6.1.16.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-aop\6.1.16\spring-aop-6.1.16.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-beans\6.1.16\spring-beans-6.1.16.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-expression\6.1.16\spring-expression-6.1.16.jar;C:\Users\ccc\.m2\repository\io\micrometer\micrometer-observation\1.13.9\micrometer-observation-1.13.9.jar;C:\Users\ccc\.m2\repository\io\micrometer\micrometer-commons\1.13.9\micrometer-commons-1.13.9.jar;C:\Users\ccc\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.3.7\spring-boot-autoconfigure-3.3.7.jar;C:\Users\ccc\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.3.7\spring-boot-starter-logging-3.3.7.jar;C:\Users\ccc\.m2\repository\ch\qos\logback\logback-classic\1.5.12\logback-classic-1.5.12.jar;C:\Users\ccc\.m2\repository\ch\qos\logback\logback-core\1.5.12\logback-core-1.5.12.jar;C:\Users\ccc\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.23.1\log4j-to-slf4j-2.23.1.jar;C:\Users\ccc\.m2\repository\org\apache\logging\log4j\log4j-api\2.23.1\log4j-api-2.23.1.jar;C:\Users\ccc\.m2\repository\org\slf4j\jul-to-slf4j\2.0.16\jul-to-slf4j-2.0.16.jar;C:\Users\ccc\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-core\6.1.16\spring-core-6.1.16.jar;C:\Users\ccc\.m2\repository\org\springframework\spring-jcl\6.1.16\spring-jcl-6.1.16.jar;C:\Users\ccc\.m2\repository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;C:\Users\ccc\.m2\repository\org\slf4j\slf4j-api\2.0.16\slf4j-api-2.0.16.jar com.example.demo.DemoApplication
Hi! It's my first Java Program.
1月 01, 2025 3:47:33 下午 com.example.demo.DemoApplication main
信息: My first Log statement.
1月 01, 2025 3:47:34 下午 com.example.demo.DemoApplication main
嚴重: Severe message
1月 01, 2025 3:47:34 下午 com.example.demo.DemoApplication main
警告: Warning Message
1月 01, 2025 3:47:34 下午 com.example.demo.DemoApplication main
嚴重: Another Severs message
1月 01, 2025 3:47:34 下午 com.example.demo.DemoApplication main
嚴重: Array Index is out of bounds.
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    at com.example.demo.DemoApplication.main(DemoApplication.java:45)

result: 2

Process finished with exit code 0

日志內容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
  <date>2025-01-01T07:47:34.012257900Z</date>
  <millis>1735717654012</millis>
  <nanos>257900</nanos>
  <sequence>1</sequence>
  <logger>com.example.demo.DemoApplication</logger>
  <level>SEVERE</level>
  <class>com.example.demo.DemoApplication</class>
  <method>main</method>
  <thread>1</thread>
  <message>Severe message</message>
</record>
<record>
  <date>2025-01-01T07:47:34.013889500Z</date>
  <millis>1735717654013</millis>
  <nanos>889500</nanos>
  <sequence>3</sequence>
  <logger>com.example.demo.DemoApplication</logger>
  <level>SEVERE</level>
  <class>com.example.demo.DemoApplication</class>
  <method>main</method>
  <thread>1</thread>
  <message>Another Severs message</message>
</record>
<record>
  <date>2025-01-01T07:47:34.018939500Z</date>
  <millis>1735717654018</millis>
  <nanos>939500</nanos>
  <sequence>4</sequence>
  <logger>com.example.demo.DemoApplication</logger>
  <level>SEVERE</level>
  <class>com.example.demo.DemoApplication</class>
  <method>main</method>
  <thread>1</thread>
  <message>Array Index is out of bounds.</message>
  <exception>
    <message>java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3</message>
    <frame>
      <class>com.example.demo.DemoApplication</class>
      <method>main</method>
      <line>45</line>
    </frame>
  </exception>
</record>
</log>

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末勺像,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子错森,更是在濱河造成了極大的恐慌吟宦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涩维,死亡現(xiàn)場離奇詭異殃姓,居然都是意外死亡,警方通過查閱死者的電腦和手機瓦阐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門蜗侈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睡蟋,你說我怎么就攤上這事踏幻。” “怎么了戳杀?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵该面,是天一觀的道長。 經(jīng)常有香客問我信卡,道長隔缀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任坐求,我火速辦了婚禮蚕泽,結果婚禮上晌梨,老公的妹妹穿的比我還像新娘桥嗤。我一直安慰自己,他們只是感情好仔蝌,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布泛领。 她就那樣靜靜地躺著,像睡著了一般敛惊。 火紅的嫁衣襯著肌膚如雪渊鞋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音锡宋,去河邊找鬼儡湾。 笑死,一個胖子當著我的面吹牛执俩,可吹牛的內容都是我干的徐钠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼役首,長吁一口氣:“原來是場噩夢啊……” “哼尝丐!你這毒婦竟也來了?” 一聲冷哼從身側響起衡奥,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤爹袁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矮固,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體失息,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年乏屯,在試婚紗的時候發(fā)現(xiàn)自己被綠了根时。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡辰晕,死狀恐怖蛤迎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情含友,我是刑警寧澤替裆,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站窘问,受9級特大地震影響辆童,放射性物質發(fā)生泄漏。R本人自食惡果不足惜惠赫,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一把鉴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧儿咱,春花似錦庭砍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钳宪,卻和暖如春揭北,著一層夾襖步出監(jiān)牢的瞬間扳炬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工搔体, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恨樟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓疚俱,卻偏偏與公主長得像厌杜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子计螺,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容