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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

slf4j绑定器_用于ADFLogger的SLF4J绑定–缺少的部分

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 slf4j绑定器_用于ADFLogger的SLF4J绑定–缺少的部分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

slf4j綁定器

由于最好的原因,在我的日常工作中,我希望為ADF Logger Oracle ADF提供一個SLF4J適配器。 毫不奇怪,slf4j沒有用于ADFLogger的適配器,但是由于ADFLogger只是Java Util Logging的輕巧包裝,因此花了一個多小時來填補這一空白。

存儲庫中的測試用例(更像是主程序)將確認適配器框架與Oracle Diagnostic Logging配合良好,而不會破壞日志消息的格式。 (或多或少是ADFLogger提供的唯一優勢)。

您可以從github的存儲庫下載整個代碼庫 。 或者,如果您只對裝訂罐感興趣,請在此處下載 。

日志級別:

考慮到ADF記錄器(7)上的日志級別很多,而SLF4J(5)的級別較少,因此在ADF記錄器的某些級別上做出了折衷。 映射如下:

注意:在此調整過程中,不再支持日志級別FINER和CONFIG。

用法:

只需繼續使用SLF4J實例替換您的ADFLogger。

private static final Logger slfLogger = LoggerFactory.getLogger(LoggingChecker.class);

代替

private static final ADFLogger adfLogger= ADFLogger.createADFLogger(LoggingChecker.class);

記錄方式

一個。 記錄到各個級別

@Testpublic void testLoggerLevels(){adfLogger.finest("finest Message from ADF Logger");slfLogger.trace("finest Message from SLF Logger");adfLogger.fine("fine Message from ADF Logger");slfLogger.debug("fine Message from SLF Logger");adfLogger.info("info Message from ADF Logger");slfLogger.info("info Message from SLF Logger");adfLogger.warning("warning Message from ADF Logger");slfLogger.warn("warning Message from SLF Logger");adfLogger.severe("severe Message from ADF Logger");slfLogger.error("severe Message from SLF Logger");}

b。 記錄異常

其中dummyException繼承了Throwable

C。 記錄參數

開發說明:

  • ADF Logger Adapter框架由兩個核心類( ADFLoggerFactory.java和ADFLoggerAdapter.java )以及其他三個幫助器類組成。
  • 適配器可以支持多個記錄器,包括ADFLogger的ROOT記錄器(這是默認記錄,名稱為空字符串)。
  • SLF4J使用ADFLoggerFactory.java實例化ADFLoggerAdapter也就不足為奇了。
  • 對于每個Logger實例, ADFLoggerAdapter.java組成一個ADFLoggerAdapter.java實例(綁定到記錄器名稱),并將調用委托給ADFLogger本身。
  • fillCallerData方法從整個日志記錄堆棧中篩選ADFLoggerAdapter的堆棧框架,以便將調用者類和方法名稱保留為主機應用程序中的名稱,而不是Adapter框架類中的名稱。
  • 測試用例(很好)

    public class TestClass {private static final ADFLogger adfLogger= ADFLogger.createADFLogger(TestClass.class);private static final Logger slfLogger = LoggerFactory.getLogger(TestClass.class);private List<String> dummyList1=null;private List<Integer> dummyList2=null;private Exception dummyException=null;@Beforepublic void setUp(){dummyList1=new ArrayList<String>();dummyList1.add("Rock");dummyList1.add("Paper");dummyList1.add("Scissors");dummyList2=new ArrayList<Integer>();dummyList2.add(21);dummyList2.add(22);dummyList2.add(23);dummyException=new Exception("Mind blowing Exception");}@Testpublic void testLoggerLevels(){adfLogger.finest("finest Message from ADF Logger");slfLogger.trace("finest Message from SLF Logger");adfLogger.fine("fine Message from ADF Logger");slfLogger.debug("fine Message from SLF Logger");adfLogger.info("info Message from ADF Logger");slfLogger.info("info Message from SLF Logger");adfLogger.warning("warning Message from ADF Logger");slfLogger.warn("warning Message from SLF Logger");adfLogger.severe("severe Message from ADF Logger");slfLogger.error("severe Message from SLF Logger");}@Testpublic void testException(){adfLogger.severe("severe Message from ADF Logger", dummyException);slfLogger.error("severe Message from SLF Logger", dummyException);}@Testpublic void testParameters(){adfLogger.severe("severe Message from ADF Logger Param :{0}", dummyList1 );slfLogger.error("severe Message from SLF Logger Param :{}", dummyList1);adfLogger.severe("severe Message from ADF Logger Param 1 :[{0}] \n [{1}]", new Object[]{dummyList1, dummyList2} );slfLogger.error("severe Message from SLF Logger Param :{} \n {} ", dummyList1, dummyList2);slfLogger.error("severe Message from SLF Logger Param :[{}] \n [{}] ", new Object[]{dummyList1, dummyList2});}

    輸出:

    記錄器級別:

    Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels INFO: info Message from ADF Logger Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels INFO: info Message from SLF Logger Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels WARNING: warning Message from ADF Logger Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels WARNING: warning Message from SLF Logger Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels SEVERE: severe Message from ADF Logger Jul 01, 2013 4:21:18 PM org.slf4j.test.TestClass testLoggerLevels SEVERE: severe Message from SLF Logger

    測試參數:

    Jul 01, 2013 4:32:04 PM org.slf4j.test.TestClass testParameters SEVERE: severe Message from ADF Logger Param :[Rock, Paper, Scissors] Jul 01, 2013 4:32:04 PM org.slf4j.test.TestClass testParameters SEVERE: severe Message from SLF Logger Param :[Rock, Paper, Scissors] Jul 01, 2013 4:32:04 PM org.slf4j.test.TestClass testParameters SEVERE: severe Message from ADF Logger Param 1 :[[Rock, Paper, Scissors]][[21, 22, 23]] Jul 01, 2013 4:32:04 PM org.slf4j.test.TestClass testParameters SEVERE: severe Message from SLF Logger Param :[Rock, Paper, Scissors][21, 22, 23] Jul 01, 2013 4:32:04 PM org.slf4j.test.TestClass testParameters SEVERE: severe Message from SLF Logger Param :[[Rock, Paper, Scissors]][[21, 22, 23]]

    測試異常:

    Jul 01, 2013 4:32:28 PM org.slf4j.test.TestClass testException SEVERE: severe Message from ADF Logger java.lang.Exception: Mind blowing Exceptionat org.slf4j.test.TestClass.setUp(TestClass.java:38)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Jul 01, 2013 4:32:28 PM org.slf4j.test.TestClass testException SEVERE: severe Message from SLF Logger java.lang.Exception: Mind blowing Exceptionat org.slf4j.test.TestClass.setUp(TestClass.java:38)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    參考: ADFLogger的SLF4J綁定– Rerun.me博客上我們JCG合作伙伴 Arun Manivannan 的缺失作品 。

    翻譯自: https://www.javacodegeeks.com/2013/11/slf4j-binding-for-adflogger-the-missing-piece.html

    slf4j綁定器

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的slf4j绑定器_用于ADFLogger的SLF4J绑定–缺少的部分的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 免费在线观看不卡av | 黄色片a级片 | 日韩人妻无码精品久久免费 | 超碰美女| 国产精品久久久久久久久久小说 | 欧美在线视频网站 | 久久一区视频 | 银杏av | 国产av无码专区亚洲av毛网站 | 欧美大片视频在线观看 | 自拍偷拍亚洲精品 | 少妇喷水在线观看 | 小视频黄色 | 午夜激情在线观看 | 久热色 | 法国空姐在线观看完整版 | 亚洲无码精品在线观看 | 色欲av伊人久久大香线蕉影院 | av大片网址 | 亚洲精品国产电影 | 18无码粉嫩小泬无套在线观看 | 日本一区二区免费高清视频 | 韩国电影一区 | 国内精品免费视频 | 中国一级片在线观看 | 无码少妇一区二区三区芒果 | 久艹视频在线观看 | 手机看片久久 | 欧美1区 | 日韩av在线一区 | 久久99精品久久久久久水蜜桃 | 精品国产乱子伦一区二区 | 色七七久久 | 青草青视频 | 国产高清视频在线播放 | 久青草国产在线 | 国产伦精品一区二区三区在线 | 伊人365影院| 大学生一级一片全黄 | 亚洲调教欧美在线 | 蜜臀视频一区二区三区 | 欧美少妇在线 | 操韩国美女 | av高清免费 | 一本高清dvd在线播放 | 亚洲一区二区三区色 | 天天躁夜夜躁av天天爽 | 欧美八区| 国产极品91| 国产高清免费在线观看 | 国产成人综合在线观看 | 黄色av网站在线观看 | 老熟妇一区二区三区啪啪 | 欧美色图激情小说 | 成人综合av | 少妇愉情理伦片bd | 99插插插 | 911看片| 日韩欧美在线不卡 | 91视频免费看| 亚洲清纯唯美 | 亚洲AV无码国产成人久久 | 久久人人爽人人爽人人片av免费 | 国产911视频| 日本精品在线观看 | 中文字幕视频在线观看 | 美女脱光内衣内裤 | 91久久综合亚洲鲁鲁五月天 | 欧美日韩一区二区在线 | 99人妻碰碰碰久久久久禁片 | 亚欧在线观看 | 性色av网站 | 丰满人妻一区二区三区精品高清 | 91片黄在线观 | 中文字幕成人动漫 | 爱爱中文字幕 | 日韩精品一区二区三区视频在线观看 | 涩漫天堂 | 大桥未久中文字幕 | 骚虎tv| 一本在线 | 亚洲乱码日产精品bd在线观看 | 精品无码久久久久久久久成人 | 一区二区在线免费看 | 日本极品丰满ⅹxxxhd | www.国产91| 青青操视频在线 | 在线观看av不卡 | 91网在线看| 亚洲国产中文字幕在线 | 日韩电影精品 | 在线成人亚洲 | 影音先锋在线国产 | 又大又硬又爽免费视频 | 天天干少妇 | 成人污视频| 黄色成人免费网站 | 最近中文字幕免费mv视频7 | 一本大道东京热无码 |