如何在運行時更改日志記錄級別

運行時中更改日志記錄級別很重要,這主要在生產環境中非常重要,在生產環境中,您可能希望在有限的時間內進行調試日志記錄。

好了,更改記錄器非常簡單–假設您有一個具有所需記錄級別的輸入參數,只需獲取根記錄器并按輸入記錄級別進行設置,例如:



Logger root = Logger.getRootLogger();//setting the logging level according to input
if ('FATAL'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);
}else if ('ERROR'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);
}

但是,常見的情況是我們按類維護日志實例 ,例如:

class SomeClass{//class level logger
static Logger logger - Logger.getLogger(SomeClass.class);
}

僅設置根記錄器是不夠的,因為類記錄器不會受到影響。

訣竅是記住讓所有記錄器都進入系統并更改其記錄級別。
例如:

Logger root = Logger.getRootLogger();
Enumeration allLoggers = root.getLoggerRepository().getCurrentCategories();//set logging level of root and all logging instances in the system
if ('FATAL'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);while (allLoggers.hasMoreElements()){Category tmpLogger = (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.FATALLogging, Enterprise Java, Log4j);}
}else if ('ERROR'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);while (allLoggers.hasMoreElements()){Category tmpLogger = (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.ERROR);}
}

因此,只需將其包裝在服務類中,然后使用動態logLevel String參數從控制器中調用它即可,該參數代表您希望將系統設置為的日志記錄級別。

如果您需要完整的解決方案,請告訴我。

基本方法是在此鏈接中 。

參考: 如何在我們的JCG合作伙伴 Gal Levinsky的博客 Blog 上更改運行時的日志記錄級別 。


翻譯自: https://www.javacodegeeks.com/2012/07/how-to-change-logging-level-in-runtime.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372030.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372030.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372030.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

擴展中國剩余定理

轉自:http://blog.csdn.net/clove_unique/article/details/54571216 對于兩個方程$x\equiv c_1\pmod {m_1}$$x\equiv c_2\pmod {m_2}$將其合并為一個方程,有解條件為$(m1,m2)|(c2-c1)$$m\frac{m1m2}{(m1,m2)}$$c(inv(\frac{m1}{(m1,m2)},\frac{m2}{(m1,m…

易語言添加ctrl c鍵,易語言操作快捷鍵匯總

以下是關于易語言的快捷鍵內容:預覽被設計窗口 CtrlEnter運行 F5終止運行 CtrlF5編譯 F7菜單編輯器 CtrlE即時幫助 F1在編輯窗口之間跳轉。按下 Ctrl 鍵后不放,然后反復按 Tab 鍵可以在目前所有的編輯窗口之間跳轉;按下 Ctrl 鍵后同時按下 Ta…

在代理類中引用動態代理

在Stackoverflow中有一個有趣的問題 ,關于Spring Bean如何獲??得對由Spring創建的代理的引用以處理事務,Spring AOP,緩存,異步流等。需要對代理的引用,因為如果存在對自身的調用通過代理bean,此調用將完全…

Array的用法總結-swift

Araay是有序的數據集,在OC中分為不可變數組NSArray和可變數組NSMutableArray,在swift中只有常量和變量兩種類型,聲明成變量那就可以說明是可變的了! 學習時的具體的用法總結成如下的代碼: //數組var arrInts [Int]()/…

Frame URl

http://www.zi-han.net/theme/hplus/?v4.1 http://webapplayers.com/inspinia_admin-v2.5/ http://baijunyao.com/article/67 轉載于:https://www.cnblogs.com/shijiaoyun/p/6065755.html

linux的i o模型,淺談Linux 網絡 I/O 模型簡介(圖文)

1、介紹Linux 的內核將所有外部設備都看做一個文件來操作(一切皆文件),對一個文件的讀寫操作會調用內核提供的系統命令,返回一個file descriptor(fd,文件描述符)。而對一個socket的讀寫也會有響應的描述符,稱為socket fd(socket文…

handsontable 方法匯總

核心方法1.為handsontable添加鉤子方法 addHook(key,callback):key為鉤子方法名 例如:hot.addHook(beforeInit, myCallback); addHookOnce(key,callback):添加只使用一次的方法,用完后自動刪除 例如:hot.addHookOnce(beforeInit, …

swing中JTable的使用方法

1 public static void main(String[] args) {2 3 Student s1 new Student("張三", "001", 0);4 Student s2 new Student("李四", "002", 1);5 Student s3 new Student("王五", "003",…

android仿高德地圖透明黑字,Android 仿高德地圖可拉伸的BottomSheet

原標題:Android 仿高德地圖可拉伸的BottomSheet2018安卓巴士開發者大會-上海站你一直期待的安卓技術盛宴即將登場!前言最近項目中需要用到高德地圖搜索結果后的結果展示的可拉伸控件。而我看到這個效果圖,覺得這個就是一個slidingpanel&#…

Java EE 7中包含哪些JSR?

我開始填寫所有應該加入Java EE 7的Java規范請求的表。 由于平臺版本仍在確定中,因此某些細節很難確定。 完整的Java EE 7 EJB產品具有以下標準組件和API: 名稱 版 描述 JSR 網頁 輪廓 批處理 1.0 批量處理 352 Bean驗證 1.1 Bean驗證框…

[ Javascript ] JavaScript中的定時器(Timer) 是怎樣工作的!

作為入門者來說。了解JavaScript中timer的工作方式是非常重要的。通常它們的表現行為并非那么地直觀,而這是由于它們都處在一個單一線程中。讓我們先來看一看三個用來創建以及操作timer的函數。var id setTimeout(fn, delay); - 初始化一個單一的timer&#xff0c…

android dropbox anr分析,Android如何分析排查ANR

釋放雙眼,帶上耳機,聽聽看~!在Android開發中,當程序發生異常時會拋出異常信息,先說下三種常見類型:列表內容KeyDispatchTimeout(谷歌default 5s,MTK平臺上是8s) –主要類型按鍵或觸摸事件在特定…

修改httpd默認端口號

Tomcat: vim /etc/httpd/conf/httpd.conf//別忘了service httpd restart Nginx: vim /etc/nginx/nginx.conf//完了之后service nginx restart 轉載于:https://www.cnblogs.com/bincoding/p/6067054.html

整合彈簧,速度和瓷磚

我喜歡 Tiles, 并且聽到了很多有關 Velocity的信息 。 它們似乎有不同的用途,并且據說很容易結合在一起,所以我決定試一試,并在Spring Web應用程序中同時使用它們。 集成實際上花費了許多小時,并且是一次真正的過山車&…

Android 軟鍵盤自動彈出和關閉

在我們寫修改信息或者搜索,修改密碼等界面的時候,用戶進入這個界面的主要目的就是輸入修改/查找 某些信息,為了用戶體驗應該自動彈出軟鍵盤而不是讓用戶主動點擊輸入框才彈出。 1.軟鍵盤的自動彈出 private void showKeyboard(){InputMethodM…

android adb殺死服務,Android app是如何殺掉的

1. adb shell kill -9 pid_of_appAMS定義了AppDeathRecipientAPP 在 attachApplication -> attachApplicationLockedAMS里會注冊 App 進程的 BinderDeath通知AppDeathRecipient adr new AppDeathRecipient(app, pid, thread);thread.asBinder().linkToDeath(adr, 0);當App進…

iOS學習筆記39-ReactiveCocoa入門

FRP,全稱為Functional Reactive Programming,是一種響應變化的編程范式,最近幾年比較火,大概的理解就像這樣: 當a的值或者b的值發生變化時,c的值會自動響應a的值或b的值變化的信號,自動更正自己…

使用密碼摘要生成器擴展JMeter

最近,我不得不處理一個帶有50,000條用戶記錄的OpenLDAP實例,并進行一些壓力測試。 JMeter是填充LDAP的最佳選擇。 但是,在我的情況下,OpenLDAP配置為不接受任何明文密碼。 因此,我無法使用通過JMeter LDAP Request采…

制造業數字化轉型核心不止是技術

一、制造業的數字化轉型意味著什么? 在當今的制造業領域,數字化轉型意味著通過集成數字技術來增強傳統的制造方法、產品和勞動力的過程。這些技術包括一系列創新,如自動化軟件、電子商務系統、傳感器、工業機器人等。 二、制造業數字化轉型的…

分類測試以減少構建時間

在繼續本文的主要內容之前,讓我們先進行一些定義。 單元測試 單元測試是小型的(測試一種用例或單元),在內存中運行(不與數據庫,消息隊列等交互),可重復且快速的測試。 對于我們的對…