日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用tinylog 1.0简化您的日志记录

發布時間:2023/12/3 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用tinylog 1.0简化您的日志记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tinylog的大小僅為75 KB,是廣泛使用的經典日志記錄框架Log4j和Logback的輕型替代方案。 經過三年的開發,最終版本1.0剛剛于 3月底發布 。 在幾個設計問題中,tinylog采取了與Java中經典日志記錄框架完全不同的方法。 本文將介紹與Log4j和Logback的區別和相似之處,并在tinylog中進行簡要介紹。

靜態記錄器

通常,對于每個使用日志記錄的類,都必須創建自己的記錄器實例。 所有這些記錄器都按層次結構命名,通常使用完全限定的類名。 在SLF4J(Logback的日志記錄API)以及Log4j 1.x中,必須顯式傳遞類名:

public class MyClass {private static final Logger logger = Logger.getLogger(MyClass.class);}

與常規工作一樣,記錄器的創建通常是從其他類中復制的。 但是在這種情況下,很容易忘記更改class參數,這可能導致錯誤的日志條目。 為避免此類問題,Log4j 2.x能夠自行檢測該類。 不再需要將類名作為參數傳遞。 tinylog更進一步,并且不再需要為每個類創建自己的記錄器實例。 相反,tinylog具有靜態記錄器,可以在其上直接調用所有記錄方法:

public class Application {public static void main(String[] args) {Logger.info("Hello {}!", args[0]);}}

組態

可以通過三種方式配置tinylog:通過屬性文件,通過系統屬性(可以設置為“ -D”參數)和通過流暢的API編程。 配置在運行時可以更改,并且始終始終設置為原子。 對于生產環境,建議將名稱為“ tinylog.properties”的屬性文件放入默認包中。 如果未明確指定其他配置,tinylog將默認加載此屬性文件。

缺省情況下,tinylog僅輸出日志級別為info或更高的日志條目。 所有其他將被丟棄。 特別是對于開發環境,更改全局日志記錄級別以進行調試以及更改某些軟件包或類來進行跟蹤是有意義的。 具有定義的日志格式和日志記錄級別的屬性文件可能類似于以下示例:

tinylog.level = debug tinylog.level@com.example = trace tinylog.format = {level}: {class}.{method}()\t{message}

伐木作家

tinylog默認將所有日志條目寫入控制臺。 可以通過定義另一個編寫器來覆蓋此默認行為。 除了寫入控制臺外,還支持寫入文件和SQL數據庫。 tinylog具有三種不同的寫入文件的編寫器: FileWriter , SharedFileWriter和RollingFileWriter 。 FileWriter將日志條目寫入定義的日志文件。 例如,可以通過以下方式在屬性文件中定義它:

tinylog.writer = file tinylog.writer.filename = log.txt

SharedFileWriter工作方式與FileWriter相同,但是支持將應用程序的多個實例同時記錄到同一日志文件中,而不會發生任何沖突。 RollingFileWriter允許在重新啟動應用程序后繼續現有的日志文件。 可以通過策略指定何時必須啟動新的日志文件。 可以將定義數量的舊日志文件存儲為備份。 在此示例中,每天將啟動一個新的日志文件,并且最近7天的日志文件將作為備份存儲,并以時間戳記命名:

tinylog.writer = rollingfile tinylog.writer.filename = log.txt tinylog.writer.policies = daily tinylog.writer.backups = 7 tinylog.writer.label = timestamp

性能

通常,每個日志條目的日志記錄成本僅為幾納秒。 但是,可以通過幾種選擇來提高速度。 最有效的方法是通過設置屬性“ tinylog.writer.buffered=true ”并通過“ tinylog.writingthread=true ”激活寫入線程來啟用緩沖寫入,以避免主應用程序被緩慢的IO操作阻塞。 但是兩者都有一個缺點,就是在JVM崩潰后,最后一個日志條目(因此也是最重要的日志條目)可能會丟失。

特別是對于大型項目,通常將類和方法名稱與每個日志條目一起輸出,以簡化查找相應代碼的過程。 但是Log4j和Logback警告說,這將導致性能損失,因為此類堆棧跟蹤信息的生成非常昂貴。 由于其體系結構,tinylog始終知道堆棧跟蹤中調用者的確切深度。 因此,tinylog可以僅提取單個所需的堆棧跟蹤元素,而不必生成整個堆棧跟蹤。 這樣可以使記錄速度加快多次,而無需放棄重要的堆棧跟蹤信息。

結論

本文可能僅在tinylog中進行簡要介紹。 可以在tinylog網站上找到所有配置參數的完整手冊 。 tinylog是根據Apache License 2發布的 ,因此可以在開源以及商業項目中使用。 還有Log4j 1.x的外觀和SLF4J的綁定以簡化遷移。 除其他功能外,還計劃在即將發布的版本中包括用于寫入的包含和排除以及用于通過郵件發送日志的MailWriter 。

翻譯自: https://www.javacodegeeks.com/2015/04/simplify-your-logging-with-tinylog-1-0.html

總結

以上是生活随笔為你收集整理的使用tinylog 1.0简化您的日志记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。