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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

改logback logstash-logback-encoder 框架本身的日志级别

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 改logback logstash-logback-encoder 框架本身的日志级别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是烤鴨:

最近遇到一個問題,想把logback框架本身的日志級別修改,需要 logstash-logback-encoder 6.1 以上的版本才可以。

直接上代碼

這里修改的不是業務日志級別,是 logback 框架本身(確切地說是 logstash-logback-encoder)這個包的日志級別,源碼默認的是 WARN 級別,現在想改成只有ERROR的日志輸出。

初始化加載類:

package com.xxx.reporter.flume; ? import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.joran.spi.JoranException; import ch.qos.logback.core.status.OnConsoleStatusListener; import ch.qos.logback.core.status.Status; import ch.qos.logback.core.util.StatusPrinter; import com.xxx.log.LogUtil; import net.logstash.logback.status.LevelFilteringStatusListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ? import java.net.URL; ? /** ?* 自定義加載logback配置。* ?* @author ?* @date 2020/7/23*/public class LogbackConfigLoader { ?private static final String LOGBACK_CONFIG = "logback.xml"; ?/** ?* 重新加載logback 配置文件*/public static void load() {LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();try {// assume SLF4J is bound to logback in the current environmentURL url = LogbackConfigLoader.class.getClassLoader().getResource(LOGBACK_CONFIG);JoranConfigurator configurator = new JoranConfigurator();configurator.setContext(context);// Call context.reset() to clear any previous configuration, e.g. default// configuration. For multi-step configuration, omit calling context.reset().context.reset();// 初始化filter,并設置級別 ERRORaddDefaultFilter(context);configurator.doConfigure(url);} catch (JoranException je) {// StatusPrinter will handle thisLogUtil.log("LogbackConfigLoader error=" + je);}StatusPrinter.printIfErrorsOccured(context); ?} ?private static void addDefaultFilter(LoggerContext context) {context.getStatusManager().getCopyOfStatusListenerList();LevelFilteringStatusListener statusListener = new LevelFilteringStatusListener();statusListener.setLevelValue(Status.ERROR);statusListener.setDelegate(new OnConsoleStatusListener());statusListener.setContext(context);statusListener.start();context.getStatusManager().add(statusListener);}}

在項目啟動的時候調一下這個方法就好了。

修改前以下的warn日志會打印,修改后就沒了:

11:17:06,337 |-WARN in net.logstash.logback.appender.LogstashTcpSocketAppender[LOGSTASH] - Log destination xxx.com : 1234: Waiting 27476ms before attempting reconnection. 11:17:13,302 |-WARN in net.logstash.logback.appender.LogstashAccessTcpSocketAppender[logstash] - Log destination xxx.com : 1234: connection failed. java.net.ConnectException: Connection refused: connect at java.net.ConnectException: Connection refused: connect at at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) at at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) at at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) at at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) at at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) at at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at at java.net.Socket.connect(Socket.java:606) at at net.logstash.logback.appender.AbstractLogstashTcpSocketAppender$TcpSendingEventHandler.openSocket(AbstractLogstashTcpSocketAppender.java:721) at at net.logstash.logback.appender.AbstractLogstashTcpSocketAppender$TcpSendingEventHandler.onStart(AbstractLogstashTcpSocketAppender.java:640) at at net.logstash.logback.appender.AsyncDisruptorAppender$EventClearingEventHandler.onStart(AsyncDisruptorAppender.java:351) at at com.xxx.arch.encoder.com.lmax.disruptor.BatchEventProcessor.notifyStart(BatchEventProcessor.java:224) at at com.xxx.arch.encoder.com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:120) at at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at at java.util.concurrent.FutureTask.run(FutureTask.java:266) at at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at at java.lang.Thread.run(Thread.java:748)

11:17:13,303 |-WARN in net.logstash.logback.appender.LogstashAccessTcpSocketAppender[logstash] - Log destination xxx.com : 1234: Waiting 27662ms before attempting reconnection.
?

根據自己的實際業務場景使用,有些 warn 還是有必要的 。建議能不改盡量不改。

總結

以上是生活随笔為你收集整理的改logback logstash-logback-encoder 框架本身的日志级别的全部內容,希望文章能夠幫你解決所遇到的問題。

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