如何使用log4j2以编程方式禁用netty日志(How to disable netty logs programmatically using log4j2)

如何使用log4j2以编程方式禁用netty日志,同时使用来自ning.com的AsyncHttpClient libraray.I已经尝试了下面的代码但不工作。

我已经尝试了下面的代码

org.apache.logging.log4j.core.config.Configurator.setLevel(LogManager.getLogger("io.netty").getName(),org.apache.logging.log4j.Level.INFO);  

How to disable netty logs programmatically using log4j2 while using AsyncHttpClient from ning.com libraray.I have tried below code but not working.

I have tried below code

org.apache.logging.log4j.core.config.Configurator.setLevel(LogManager.getLogger("io.netty").getName(),org.apache.logging.log4j.Level.INFO);  

原文:https://stackoverflow.com/questions/43471506
2020-01-18 08:37

满意答案

看起来你只是想改变特定记录器的日志级别。 如果这是你需要做的事情,你可以使用这样的代码:

    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    Configuration config = ctx.getConfiguration();
    LoggerConfig loggerCfg = config.getLoggerConfig("io.netty");
    loggerCfg.setLevel(Level.OFF); //Using this level disables the logger.
    ctx.updateLoggers();

It looks like you're just trying to change the log level of a particular logger. If that is what you need to do you can use code like this:

    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    Configuration config = ctx.getConfiguration();
    LoggerConfig loggerCfg = config.getLoggerConfig("io.netty");
    loggerCfg.setLevel(Level.OFF); //Using this level disables the logger.
    ctx.updateLoggers();

相关问答

更多

如何向log4j2的JSON日志添加字段(How do I add fields to log4j2's JSON logs)

喜欢@ alan7678说 - 自定义布局也是我的解决方案。 @Plugin(name = "ExtendedJsonLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = true) public class ExtendedJsonLayout extends AbstractJacksonLayout { // Lots of code! } 我创建了一个名为“ext...

以编程方式查找log4j2(beta9)日志文件名(Programmatically find the log4j2 (beta9) log filename)

从Logger ,遍历所有getAllAppenders查找实现RollingFileAppender getAllAppenders ,并调用getFile 。 或者,如果您不介意对appender的名称进行硬编码,则可以使用getAppender("RollingFile") 。 对于Log4j 1: public static final Logger LOG = Logger.getLogger(YourClass.class); public File getLoggerFile() ...

log4j vs log4j2:登录到不同的文件(log4j vs log4j2: log to different file)

如果您保持其余配置相同,但修改Loggers部分: <Loggers> <Logger name="logger1" level="debug" additivity="false"> <appender-ref ref="file" level="debug" /> </Logger> <Logger name="logger2" level="debug" additivity="false"> <appender-ref ref="file2" level="er...

在Log4j2中以编程方式更改日志级别(Programmatically change log level in Log4j2)

根据log4j2版本2.4的FAQ 您可以使用Log4j Core中的类Configurator设置记录器的级别。 但请注意,Configurator类不是公共API的一部分。 // org.apache.logging.log4j.core.config.Configurator; Configurator.setLevel("com.example.Foo", Level.DEBUG); // You can also set the root logger: Configurator.se...

来自log4j2的奇怪日志(Weird logs from log4j2)

您可能缺少log4j-web依赖项 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.2</version> </dependency> You are probably missing the log4j-web dependency <dependency> <groupId>org.apache.logg...

以编程方式从Log4j2 XML配置获取属性(Getting properties programmatically from Log4j2 XML config)

context.getConfiguration()返回的类Configuration不是一种PropertyConfiguration类。 它不能用于访问log4j2.xml值,因为它是针对日志记录设置而定制的非常不同的Configuration类。 可以将baseDir定义提取到单独的属性文件中。 这为编程和非编程log4j配置提供了通用源:以编程方式,它可以作为常规属性配置文件进行访问; log4j2配置可以作为属性查找来访问它。 这看起来像这样: 外部属性文件logsCommons.pro...

如何使用log4j2以编程方式禁用netty日志(How to disable netty logs programmatically using log4j2)

看起来你只是想改变特定记录器的日志级别。 如果这是你需要做的事情,你可以使用这样的代码: LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig loggerCfg = config.getLoggerConfig("io.netty"); loggerCfg.setLev...

Log4j2,没有登录文件(Log4j2, no logs in file)

看起来我缺少log4j2.properties文件的以下配置: logger.rolling.name = name logger.rolling.level = debug logger.rolling.additivity = false logger.rolling.appenderRef.rolling.ref = RollingFile 现在它有效。 It looks like I was missing the following configurations for the log...

如何使用log4j2记录log4j日志(How to use log4j2 to log log4j logs)

最简单的方法是使用log4j2中包含的log4j-1.2桥接罐。 请参阅Log4j 1.2迁移指南 。 (确保从类路径中删除旧版log4j-1.2.x.jar!) 您只需要Log4j 2配置。 The simplest way is to use the log4j-1.2 bridge jar that is included in log4j2. See the Log4j 1.2 Migration Guide. (Make sure to remove the legacy log4j-1...

Log4j2:如何在不使用Throwable的情况下获取类名和行号?(Log4j2: How can I get Class Name and Line Number without using Throwable?)

您可以使用 StackTraceElement[] stes = Thread.currentThread().getStackTrace(); 但我不确定这会便宜得多。 我所做的是使每条消息都是唯一的(对于班级)并避免包括行号。 您可以在IDE中搜索唯一消息以查找行号。 该类应该在记录器的名称中。 You can use StackTraceElement[] stes = Thread.currentThread().getStackTrace(); however I am not su...

相关文章

更多

Solr 使用 Log4j

原文出处:http://blog.chenlb.com/2010/08/solr-with-log4j ...

Solr 使用 Log4j

大家知道在解压开solr的web程序(apache-solr-3.2.0.war)时,在其WEB-IN ...

log4j配置日志输出到数据库

log4j.appender.DB.password=password

[Netty 1] 初识Netty

1. 简介 最早接触netty是在阅读Zookeeper源码的时候,后来看到Storm的消息传输层也由 ...

Log4j 记录Log日志

Log4j基本概念 Log4j比JDK Logging更加成熟。Log4j是事实上 日志记录标准。三大 ...

Log4J 详细注释版收藏

#①配置根Logger,其语法为:0 #log4j.rootLogger = [ level ] ...

问个log4j的应用一个问题。

我看了hibernate等应用log4j的框架源码,有些类都有下面这句代码 Logger log=L ...

请教:log4j 问题

我的log4j配置文件内容如下: log4j.rootLogger=ERROR, Rlog4j.lo ...

tomcat+log4j+日志格式

最近一个项目对tomcat日志有要求,以前只是一个文件,导致文件太大,现在要求日志文件要按日生成,并且 ...

LOG4J的配置

我现在需要一个log4j的配置文件,要求每个日志文件的大小为200MB,如果达到该大小,保存下原来的日 ...

最新问答

更多

java中的Base64二进制数据类型(Base64 binary data type in java)

Base-64编码是一种将任意字节转换为适合ASCII编码的文本字符范围内的字节的方法。 这是在没有任何解释的情况下完成的 - 原始字节在发送者端被转换为base-64; 接收器将它们转换回字节流,这就是它的全部内容。 当您的代码打印encoded1.getClass().getName() ,它获取的只是字节数组的静态类型。 为了将base-64中编码的数据解释为对程序有意义的内容,您需要知道作为base-64传输的基础数据的格式。 一旦字节传递给你(在你的情况下,这是encoded1的1字节

SQL Select Distinct基于条件(SQL Select Distinct based on Conditional)

你可以试试这个, SELECT ASN, CASE WHEN MAX_STATUS = 2 THEN 'MISCOUNT' WHEN MAX_STATUS = 0 THEN 'NOT STARTED' WHEN MAX_STATUS = 1 AND MIN_STATUS = 1 THEN 'VERIFIED' WHEN MAX_STATUS = 1 AND MIN_STATUS = 0 THEN 'I

带有Category和SubCategory的嵌套类别表(Nested Category table with Category and SubCategory)

检查公用表表达式,这些表达式允许您创建“递归选择”。 http://www.mssqltips.com/sqlservertip/1520/recursive-queries-using-common-table-expressions-cte-in-sql-server/ Check for Common Table Expressions, those allow you to create "recursive-selects". http://www.mssqltips.com/sqls

我的应用程序中有两个http请求,但我只想使用一个'http_proxy'(I have two http requests in my application, but I want only one use 'http_proxy')

我的解决方案是改变lib。 我正在使用SOAPpy,现在我正在使用SUDS并且工作。 由于某种原因,SOAPpy中的param http_proxy错误地使用了代理。 My solution was to change the lib. I was using SOAPpy, now Im using SUDS and worked. For some reason the param http_proxy in SOAPpy was using the proxy incorrectly.

记录样本的GNU无线电文件格式(GNU Radio File Format for the recorded samples)

文件接收器只是数据流的转储。 如果数据流内容是简单字节,那么文件的内容很简单。 如果数据流包含复数,则该文件将包含复数列表,其中每个复数由两个浮点数给出,每个浮点数(通常)为4个字节。 有关gnuradio文件读写块的实现,请参阅文件gnuradio / gnuradio-core / src / lib / io / gr_file_sink.cc和gr_file_source.cc。 您还可以使用python和gnuradio将文件转换为其他格式。 from gnuradio import

在Windows下的package.json脚本中设置环境变量(Setting environment variables in package.json scripts under Windows)

我设法解决了这个问题,有趣的是,删除了空间: "buildDev": "set NODE_ENV=development&& webpack" 哪个(至少对我来说)似乎是错的。 我预计这将导致语法错误和development&&的NODE_ENV值,但它完美地工作 - 尽管是丑陋的。 Make it cross-platform by using cross-env: "buildDev": "cross-env NODE_ENV=development webpack"

无法使用Renderer将Object实例设置为JComboBox的选定项(Unable to set Object instance as selected item of JComboBox with Renderer)

如果要通过使用对象的不同实例来执行此操作,但具有相同的属性,则需要覆盖类的equals和hashcode方法,以便属性组合是唯一的。 这非常重要,这是一种关系期望,任何equal另一个的对象都将具有相同的hashcode 这是一个非常快速的示例,我使用IDE的自动生成过程(因为我很懒),但是,如果您的Registration类具有在与类的实例进行比较时应该考虑的其他属性,则需要将其修改为支持他们(再次,任何好的IDE都应该能够做到这一点) public class Registration {

在表单提交上,在Codeiginiter验证之前首先进行jquery检查(On Form Submission, do jquery checking first before Codeiginiter validation)

如果您想在提交表单之前在客户端进行验证,则以下内容将起作用: // view echo form_open('basic_controller/submission'); echo form_input( array('name'=>'text', 'id'=>'text_input') ); echo form_submit('my_submit', 'Enter', "id='my_submit'"); echo form_close(); // controller function s

返回然后作为未定义。(Returning Then as Undefined. Q in NodeJS)

您的主要功能landingPage没有返回值。 其中的代码产生一个承诺,但你也应该返回它。 当你想要返回deferred持有的promise时,你应该延迟一个在外部函数作用域中定义的变量,这样你就可以返回它定义的promise( deferred.promise ): var landingPage = function (dir) { var deferred = Q.defer(); // *** define here Uni.get('https://'+getDirec

在同一个类中调用方法(Calling a method within the same class)

这不是一种扩展方法。 你需要使方法静态并调用它们: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication4 { class arraymod { static void Main( string[] args ) { int[]