<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          tinylog || Log4j 、Logback 替代品

          共 4470字,需瀏覽 9分鐘

           ·

          2022-01-01 19:42

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?
          關(guān)注


          閱讀本文大概需要 4 分鐘。

          來自:blog.csdn.net/cunchi4221/article/details/107477602

          TinyLog是Java的簡單輕量級日志記錄框架。我們可以將tinylog與Java,Kotlin,Scala和Android應(yīng)用程序一起使用。


          # TinyLog日志記錄框架的好處

          避免Logger初始化的樣板代碼。tinylog中的Logger類是靜態(tài)的,可直接用于記錄消息。


          支持其他流行的JVM語言,例如Kotlin和Scala。

          也支持使用logcat的android應(yīng)用程序。

          tinylog罐子重量輕且尺寸小。tinylog 2.x版本的API jar為48 kb,實現(xiàn)jar為72 kb。


          可以使用JDBC和DataSource將輸出發(fā)送到控制臺,文件,數(shù)據(jù)庫。


          配置文件非常簡單。對于基于控制臺的簡單日志記錄,我們不需要任何配置文件。

          它是免費和開源的。完整的項目代碼托管在GitHub上 。

          根據(jù)他們自己的基準(zhǔn)測試 ,它們比Log4J日志記錄框架快得多。


          不依賴于任何其他API和框架。

          支持創(chuàng)建標(biāo)簽以對日志消息進(jìn)行分類。這對于從巨大的日志文件中過濾日志消息非常有用。

          懶惰日志支持僅在需要日志時才推遲昂貴的計算。


          # TinyLog日志入門

          我們必須在項目類路徑中包含以下jar。這些是撰寫本教程時tinylog框架的最新版本。

          • tinylog-api-2.0.0-RC1.jar


          • tinylog-impl-2.0.0-RC1.jar


          大多數(shù)時候,我們使用Maven或Gradle進(jìn)行項目構(gòu)建和依賴管理。

          Minelog的Maven依賴關(guān)系?

          <dependency><groupId>org.tinyloggroupId><artifactId>tinylog-apiartifactId><version>2.0.0-RC1version>dependency><dependency><groupId>org.tinyloggroupId><artifactId>tinylog-implartifactId><version>2.0.0-RC1version>dependency>

          tinylog的Gradle依賴關(guān)系

          implementation 'org.tinylog:tinylog-api:2.0.0-RC1'implementation 'org.tinylog:tinylog-impl:2.0.0-RC1'

          上面的實現(xiàn)jar適用于基于JVM的應(yīng)用程序。對于Kotlin,Scala,Android,SLF4J和JCL,有單獨的實現(xiàn)jar。您必須根據(jù)您的項目類型包括實施JAR。


          # 使用tinylog記錄器?


          將所需的jar添加到項目類路徑后,我們可以使用其Logger類編寫日志消息。

          下圖顯示了我的Eclipse項目結(jié)構(gòu)。
          TinyLog Example Project
          TinyLog示例項目

          這是我使用tinylog Logger進(jìn)行記錄的類。

          Employee.java :一個簡單的模型類,具有一些屬性及其getter-setter方法 。
          package?com.journaldev.tinylog;
          import org.tinylog.Logger;
          public class Employee {
          private int id;private String name;
          public String getName() {Logger.debug("Returning employee name " + this.name);return name;}
          public void setName(String name) {Logger.info("Setting employee name " + name);this.name = name;}
          public int getId() {Logger.debug("Returning employee id " + this.id);return id;}
          public void setId(int id) {Logger.info("Setting employee id " + id);this.id = id;}}

          EmployeeService.java :一個簡單的服務(wù)類,提供了一種創(chuàng)建Employee對象的方法。
          package com.journaldev.tinylog;
          import org.tinylog.Logger;
          public class EmployeeService {
          public Employee createEmployee(int i, String n) {Logger.info("Creating Employee with ID = " + i + " and Name = " + n);Employee emp = new Employee();emp.setId(i);emp.setName(n);return emp;}
          }

          EmployeeMain.java :運行我們的簡單項目的主類。

          package com.journaldev.tinylog;
          import org.tinylog.Logger;
          public class EmployeeMain {
          public static void main(String[] args) { Logger.debug("Program Started");
          EmployeeService empService = new EmployeeService();
          Employee emp = empService.createEmployee(10, "Pankaj");
          System.out.println("Employee ID = " + emp.getId());System.out.println("Employee Name = " + emp.getName());
          Logger.debug("Program Finished");}}

          當(dāng)我們運行上述程序時,它將生成以下輸出。請注意,我們目前尚未創(chuàng)建tinylog配置文件。





          # TinyLog記錄級別

          記錄器支持五個記錄級別-跟蹤,調(diào)試,信息,警告和錯誤。默認(rèn)值和最低優(yōu)先級為“跟蹤”。最高優(yōu)先級是“錯誤”。我們可以在配置文件中設(shè)置日志記錄級別。設(shè)置級別和更高優(yōu)先級的日志消息將被記錄。

          # TinyLog配置文件

          TinyLog在類路徑中尋找tinylog.properties文件,以配置日志記錄選項。我們通常在資源目錄中創(chuàng)建此文件。讓我們創(chuàng)建第一個tinylog配置文件。

          tinylog.properties :
          writer = consolewriter.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}

          當(dāng)我們再次運行主程序時,輸出為:
          12:22:47.073 DEBUG: Program Started12:22:47.076 INFO: Creating Employee with ID = 10 and Name = Pankaj12:22:47.076 INFO: Setting employee id 1012:22:47.077 INFO: Setting employee name Pankaj12:22:47.077 DEBUG: Returning employee id 10Employee ID = 1012:22:47.077 DEBUG: Returning employee name PankajEmployee Name = Pankaj12:22:47.077 DEBUG: Program Finished

          請注意,日志消息遵循配置文件中提到的格式。

          # TinyLog標(biāo)簽

          我們可以使用以下代碼在代碼中設(shè)置Logger標(biāo)簽。
          Logger.tag("MAIN").debug("Program Started");
          Logger.tag("MAIN").debug("Program Finished");

          更新后的日志消息將包含以下幾行。

          12:26:12.831 MAIN DEBUG: Program Started...12:26:12.835 MAIN DEBUG: Program Finished

          我們可以設(shè)置一個writer標(biāo)簽來記錄具有該標(biāo)簽的消息,其他消息將被writer忽略。
          writer = consolewriter.tag = SYSTEM

          通過將標(biāo)簽設(shè)置為“-”,我們可以忽略所有標(biāo)簽,僅記錄未加標(biāo)簽的消息。

          writer = consolewriter.tag = -

          # TinyLog配置,可將消息記錄到日志文件中?

          這是一個將消息記錄到tinylog.txt文件中的簡單示例。
          writer = filewriter.file = tinylog.txtwriter.level = infowriter.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}

          TinyLog也支持讀取環(huán)境變量。例如,我們可以使用以下格式指定要在主目錄中生成的日志文件。
          writer.file = ${HOME}/tinylog.txt

          我們還可以使用#{key}格式在TinyLog配置中讀取系統(tǒng)屬性。
          writer.format = #{user.name}: {message}

          # 滾動文件編寫器配置

          writer = rolling filewriter.file = tinylog{count}.txtwriter.level = infowriter.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}

          # 擴(kuò)展TingLog

          TinyLog是可擴(kuò)展的。我們可以實現(xiàn)org.tinylog.writers.Writer接口并將其注冊為服務(wù)。同樣,我們可以實現(xiàn)org.tinylog.policies.Policy接口來創(chuàng)建自定義策略并進(jìn)行注冊。

          推薦閱讀:

          Spring Boot 監(jiān)聽 Redis Key 失效事件實現(xiàn)定時任務(wù)

          用不慣VMware?試試這款更輕量級的虛擬機(jī)!

          互聯(lián)網(wǎng)初中高級大廠面試題(9個G)

          內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper、數(shù)據(jù)結(jié)構(gòu)、限流熔斷降級......等技術(shù)棧!

          ?戳閱讀原文領(lǐng)??!? ? ? ? ? ? ? ??? ??? ? ? ? ? ? ? ? ? ?朕已閱?

          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  嘛豆三级片电影 | 久久九| 99无码国产成人精品视频 | 亚洲一区二区三区蜜桃 | 成人麻豆短视频999 |