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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志

發布時間:2023/12/18 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
11.5 日志記錄可以通過Loger.getGlobal().info(xxxx);的方式來記錄log。
11.5.2 高級日志
1)通過一個包名來 創建一個新的日志記錄器。private static final Logger logger = Logger.getLogger("my.learvjava.learnlog");

2)日志記錄器也具有層次結構,且日志記錄器的父子之間將共享某些屬性,比如如果對com.mycompany設置了日志級別,那么其子記錄器也會繼承這個級別。3)有以下7個日志記錄器級別:SEVERWARNINGINFOCONFIGFINEFINERFINEST默認值記錄前三個級別。可以使用Level.ALL來開啟所有級別的記錄,或者使用 Level.OFF來關閉所有級別的記錄。4)由于默認記錄了info及其以上的級別,所以要使用? ? CONFIG, FINE, FINER, FINEST來記錄那些有助于診斷,但是對程序員沒有太大意義的調試信息。
5)void entering(xxx), void exiting(xxxx)將生成finer級別的日志信息。6)可以用下面的方法來記錄日志中包含的異常信息。
  • if(xxxx){
  • IOException e = new IOException("xxx);
  • logger.throwing("com.mycompany.mlib.Reader", 'read", e);
  • throw e;
  • }
  • 調用throwing可以記錄一條finner級別的記錄和一條以THROW開始的信息。

    11.5.3??修改日志管理配置? ? 默認情況下位于e/lib/logging.properties文件內。
    ?? ? 如果要修改,就需要在啟動的時候通過如下命令來修改:? ? java?? ? -Djava.util.logging.config.file=configfile mainjavaclass
    ? ? 因為默認的日志信息是記錄在java.util.logging.config.file這個靜態變量中的。
    ? ? 在main方法中調用System.setProperties("java.util.logging.config.file", file)不會起作用,其原因是日志管理器在vm啟動過程中被初始化,他會在main之前被執行。
    ? ? 可以通過在logging.properties中添加如下命令來設置日志記錄級別
    ? ? .level=FINE
    ? ??
    ? ??
    11.5.4 本地化? ? 雖然五年前我們在做我們應用程序的本地化的時候完全是靠自己想象的,但是現在回頭來看,其實我們做的東西和java的本地化的思路是類似的,都是針對不同的語言提供不同的語言文件,通過key=value的文本文件的方式來提供。
    ? ? java中稍微有點區別,他允許同時存在多種語言的語言文件,只是在名字中增加語言前綴,而我們是通過將語言文件放在語言文件夾中來決定的。
    ? ??
    ? ? 這也側面說明了當編程進行到一定階段之后,解決問題的思路是想通的。
    ? ??
    ? ??
    11.5.5 處理器? ? 與日志記錄器一樣,日志處理器也有日志記錄級別。對于一個要被記錄的日志,他的日志級別必須高于日志記錄器和處理器的閾值。? ? 日志管理器配置文件中記錄的控制臺處理器的日志級別為:? ? java.util.logging.ConsoleHandler.level=INFO? ??? ? 也可以繞過配置文件,不適用默認的處理器,而適用自定義的處理器:?
  • Logger logger = Logger.getLogger("com.mycompany.myapp");
  • logger.setLevel(Level.FINE);
  • logger.setUseParantHanler(false);
  • Handler handler = new ConsoleHandler();
  • handler.setLevel(Level.FINE);
  • logger.addHandler(handler);
  • ? ?要想將日志發送到其他地方,就需要添加其他的處理器。java api為此提供了兩個很有用的處理器:FileHandler, SocketHandler。
  • FileHandler fileHandler = new FileHandler();
  • logger.addHandler(fileHandler);
  • ? ? 如果希望寫更復雜的流處理器,就應該擴展Handler類,并自定義public/flush/close方法。
    ? ??
    11.5.6 過濾器? ? 只需要實現Filter接口的? ? boolean isLoggable(LogRecord record);? ? 方法,就可以定義一個自己的過濾器。? ??? ? 記錄器和處理器都可以設置過濾器,每個記錄器和處理最多只能設置一個過濾器。? ??? ???11.5.7 格式化器? ? 實現Formatter接口,然后實現其中的 String format(LogRecord record)方法即可。? ? 然后在通過調用處理器的setFormater(Fomater formater)方法來設置。? ??? ??? ?








    來自為知筆記(Wiz)

    轉載于:https://www.cnblogs.com/strinkbug/p/4997914.html

    總結

    以上是生活随笔為你收集整理的Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志的全部內容,希望文章能夠幫你解決所遇到的問題。

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