<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug="false">

  <appender name="ROLLING" class="org.apache.log4j.RollingFileAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %5p %c %x - %m%n"/>
    </layout>
    <param name="File" value="/var/log/4j/log_gsX.log"/>
    <param name="MaxFileSize" value="50MB"/>
    <param name="MaxBackupIndex" value="9"/>
  </appender>

  <appender name="DAILY_LUA" class="org.apache.log4j.DailyRollingFileAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %5p %c %x - %m%n"/>
    </layout>
    <param name="File" value="/var/log/4j/log_gsX_lua.log"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
  </appender>

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %5p %c %x - %m%n"/>
    </layout>
    <param name="Threshold" value="info"/>
  </appender>

  <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    <param name="BufferSize" value="100000"/>
    <param name="Blocking" value="false"/>
    <appender-ref ref="ROLLING"/>
    <appender-ref ref="CONSOLE"/>
  </appender>

  <appender name="ASYNC_LUA" class="org.apache.log4j.AsyncAppender">
    <param name="BufferSize" value="100000"/>
    <param name="Blocking" value="false"/>
    <appender-ref ref="DAILY_LUA"/>
  </appender>

  <root>
    <level value="info"/>
    <appender-ref ref="ASYNC" />
  </root>

  <logger name="Lua">
    <level value="info"/>
    <appender-ref ref="ASYNC_LUA" />
  </logger>

  <logger name="main">
    <level value="info"/>
  </logger>

  <logger name="THSever">
    <level value="debug"/>
  </logger>
</log4j:configuration>

ASYNC异步输出到ROLLING和CONSOLE。

另外,Lua日志异步输出为每天一个的独立日志。

默认仅输出INFO日志,THServer日志类输出DEBUG日志。

CONSOLE屏蔽DEBUG日志。

每个服务器使用相类似的配置,仅输出文件名不同。可用如下Shell脚本生成各个配置文件:

for i in {2..32}
do
  sed 's/gsX/gs'${i}'/g' log4j_gsX.xml > log4j_gs${i}.xml
done

log4xx/log4j异步日志配置示例的更多相关文章

  1. logback&log4j异步日志配置

    logback 原始配置 配置 appender, 控制文件的滚动方式,日志的输出格式. <appender name="method-time-appender" clas ...

  2. log4j 异步日志问题分析

    1. 常用的DailyRollingFileAppender与RollingFileAppender是否同步? 1.1 代码分析 2. log4j 1.2.x提供了异步appender是什么?Asyn ...

  3. log4j2异步日志配置及官方文档的问题澄清

    配置及demo 方法一全部打开 加启动参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextS ...

  4. Java log4j slf4j 日志配置笔记

    http://www.cnblogs.com/Scott007/p/3269018.html 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender, ...

  5. log4j打印日志配置

    1.所需的jar包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifa ...

  6. (转)log4j(六)——log4j.properties简单配置样例说明

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 (1)使用配文件的方式,是不是感觉非常的清爽,如果不在程序中读取配置文件就更加的清 ...

  7. solr 日志配置

    配置Solr日志记录 临时记录设置 您可以使用Admin Web界面来控制Solr中的日志输出量.选择LOGGING链接.请注意,此页面只允许您更改正在运行的系统中的设置,并不会保存在下一次​​运行中 ...

  8. 一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位

    一次鞭辟入里的 Log4j2 日志输出阻塞问题的定位 问题现象 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返回,并且通过日志发现,服务线程并没有做什么很重的 ...

  9. 如何监控 Log4j2 异步日志遇到写入瓶颈

    如何监控 Log4j2 异步日志遇到写入瓶颈 在之前的一篇文章中(一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位),我们详细分析了一个经典的 Log4j2 异步日志阻塞问题的定位,主要原因还 ...

随机推荐

  1. 关于Linux下软件包aptitude的相关操作

    aptitude+回车 - 进入aptitude操作界面,可以对预览查看各种软件包 aptitude show package_name - 列出与XXX相关的软件包信息,但是并不能看到该软件包所安装 ...

  2. 分别用face++和百度获取人脸属性(python单机版)

    称之为单机版,主要是相对于调用摄像头实时识别而言.本篇主要py2下利用face++和百度接口获取本地图片中的人脸属性,并按照一定格式保存数据. face++版 face++是刚注册的,只能用一个试用的 ...

  3. Vulkan API基本概念

    设备初始化 Instance --> GPU --> Device Instance表示具体的Vulkan应用.在一个应用程序中可以创建多个实例,这些实例之间相互独立,互不干扰. 当调用A ...

  4. PGM:部分有向模型之条件随机场与链图模型

    http://blog.csdn.net/pipisorry/article/details/52529287 贝叶斯网与马尔可夫网 [PGM:无向图模型:马尔可夫网]中例3.8和例4.8显示,贝叶斯 ...

  5. Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换

    上一章介绍MediaCodec中创建到start过程(到jni部分),从今天开始,将深入源码中看看其c++过程,看下Agenda如下: mediacodec.h CreateByType initMe ...

  6. Spark-1.6.0之Application运行信息记录器JobProgressListener

    JobProgressListener类是Spark的ListenerBus中一个很重要的监听器,可以用于记录Spark任务的Job和Stage等信息,比如在Spark UI页面上Job和Stage运 ...

  7. 剑指Offer——乐视笔试题+知识点总结

    剑指Offer--乐视笔试题+知识点总结 情景回顾 时间:2016.9.19 15:10-17:10 地点:山东省网络环境智能计算技术重点实验室 事件:乐视笔试   总体来说,乐视笔试内容体量不算少, ...

  8. Python 自动刷博客浏览量

    哈哈,今天的话题有点那什么了哈.咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧. 思路来源 今天很偶然的一个机会,听到别人在谈论现在的"刷量"行为,于是就激发了我的好奇心. ...

  9. java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析

    java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...

  10. Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.

    废了半天劲才解决... 就三步:菜单栏,Tools -> Adnroid -> enable ADB integration