Log4j2:异步日志中打印方法名和行号信息

1. 解决方案

  1. 异步logger,还需要在pom.xml中添加disruptor的依赖;
  2. includeLocation结合异步logger使用,当其设置为true时,才会显示具体的行号,以及日志所在的类名;
  3. 如果设置为false,哪怕<Pattern>设置了输出行号也不会显示出来;

2. pom配置

      <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.3.6</version>
        </dependency>

3. 属性配置

  设置 AsyncRoot 的 includeLocation 属性为 true;

  xml 格式示例:

<AsyncRoot level="info" includeLocation="true">
    <AppenderRef ref="File"/>
</AsyncRoot>

  yaml 格式示例:

  Loggers:
      AsyncRoot:
        level: info
        includeLocation: true
        AppenderRef:
          - ref: console
          - ref: running_log

原文地址:https://www.cnblogs.com/virgosnail/p/12162661.html

时间: 2024-11-10 20:58:37

Log4j2:异步日志中打印方法名和行号信息的相关文章

Java中获取文件名、类名、方法名、行号的方法

??在C语言中,可以通过宏FILE.LINE来获取文件名和行号,在Java语言中,则可以通过StackTraceElement类来获取文件名.类名.方法名.行号,具体代码如下: public static int getLineNumber( ){ StackTraceElement[] stackTrace = new Throwable().getStackTrace(); return stackTrace[1].getLineNumber( ); } public static Stri

C/C++ 打印源文件名和行号函数名的宏

__FILE__             宏在预编译时会替换成当前的源文件名__LINE__             宏在预编译时会替换成当前的行号 __FUNCTION__   宏在预编译时会替换成当前的函数名称

CI中控制器名不能和本个 控制器中的方法名相同

控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php  中有方法 public  function tang(){ } 这样就会出现错误 CI中控制器名不能和本个 控制器中的方法名相同,布布扣,bubuko.com

打印文件名、函数名和行号的方法

java打印文件名.函数名和行号的方法:Log.d(TAG, new Exception().getStackTrace()[0].getMethodName()); //函数名 Log.d(TAG, Thread.currentThread().getStackTrace()[2].getMethodName()); //函数名 Log.d(TAG, ""+Thread.currentThread().getStackTrace()[2].getLineNumber()); //行号

EXTJS中的grid显示实际行号

添加一个新的功能 [javascript] view plaincopy Ext.grid.PageRowNumberer = Ext.extend(Ext.grid.RowNumberer, { width : 40, renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){ if(store.lastOptions.params!=null){ var pageindex=store.lastOptio

Linux日志中如何查找关键字及其前后的信息

在日常工作中,我们经常需要查看日志,比如可以通过 tail 命令实时查看日志,也可以通过 cat 等命令查看日志信息. 但现在我们要讨论的是,如何从日志中通过关键字过滤出我们想要的内容,方法有多种,今天我们主要以 cat 命令来进行学习. 假设存在日志文件 hrun.log,查询的关键字为"新增用户": 根据关键字查看日志 cat hrun.log | grep "新增用户" 根据关键字查看后10行日志 cat hrun.log | grep "新增用户&

Sqlite中使用rowid来表示行号,用于分页。

在SQLite的查询结果中显示行号,可以使用select rowid as RowNumber ,* from WSCLanguage: select rowid as RowNumber ,* from WSCLanguage ORDER BY CreateTime; select distinct keyword from articlecontent;  /* select last_insert_rowid()  aaa   返回最后一条记录ID*/ select *  from (se

GET,POST的同步和异步所有中代码方法

#pragma   GET同步: //开发中 不推荐使用同步网络请求 - (IBAction)getT:(id)sender {//通过storyboard关联得到的方法 //地址字符串 NSString *urlString =  @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=

查看MySQL还原出来的binlog日志中内容方法

用mysqlbinlog查出需要查看的数据后,可以用more来查看: [[email protected] data]# more recover_sakila.sql | grep --ignore-case -E 'insert' -A2 -B2 | grep yoon 如果表名包含yoon_log,yoon_order,只想导出yoon表的话,+个-w[[email protected] data]# more recover_sakila.sql | grep --ignore-case