在log里面有日志级别:

DEBUG Level: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.
INFO level: 表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.
WARN level: 表明会出现潜在错误的情形,就是显示警告信息.
ERROR level: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.
FATAL level: 指出每个严重的错误事件将会导致应用程序的退出.
ALL level: 是最低等级的,用于打开所有日志记录.
OFF level: 是最高等级的,用于关闭所有日志记录.

从低到高,会在设定低级别后,输出比其级别高的信息。

DEBUG < INFO < WARN < ERROR < FATAL

比如在输出控制台信息的时候:

    <!-- 将日志信息输出到控制台 -->
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<!-- 设置日志输出的样式 -->
<layout class="org.apache.log4j.PatternLayout">
<!-- 设置日志输出的格式 -->
<!-- <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> -->
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] [method:%l]%m%n"/>
<!-- 设置日志输出级别,开发可以设置为debug,正式上线可以用info -->
<param name="Threshold" value="DEBUG"></param>
</layout>
</appender>

这里设置了debug,就会输出debug,及大于它的信息。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration> <!-- 将日志信息输出到控制台 -->
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout">
<!-- 设置日志输出的格式 -->
<!-- <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> -->
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] [method:%l]%m%n"/>
<!-- 设置日志输出级别,开发可以设置为debug,正式上线可以用info -->
<param name="Threshold" value="DEBUG"></param>
</layout>
</appender> <!-- 输出日志到文件 每天一个文件 -->
<appender name="logfile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="info"></param>
<!-- 设置日志信息输出文件全路径名 -->
<param name="File" value="D:/log4j/logs/logFile.log" />
<!-- 设置日志以天为单位回滚一次,即产生一个新的日志文件 -->
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<!-- 设置日志输出的样式 -->
<layout class="org.apache.log4j.PatternLayout">
<!-- 设置日志输出的格式 -->
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] [method:%l]%m%n" />
</layout>
</appender>
<!-- 设置日志缓存,及缓存大小 -->
<appender name="async" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="512"/>
<appender-ref ref="stdout"/>
<appender-ref ref="logfile"/>
</appender> <!-- 输出日志到文件 文件大小到达指定尺寸的时候产生一个新的文件 -->
<!-- 将日志信息输出到文件,但是当文件的大小达到某个阈值的时候,日志文件会自动回滚 -->
<appender name="railyFile" class="org.apache.log4j.RollingFileAppender">
<!-- 设置日志信息输出文件全路径名 -->
<param name="File" value="D:/log4j/logs/logFile2.log" />
<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志
<param name="Append" value="true" /> -->
<!-- 设置保存备份回滚日志的最大个数 -->
<param name="MaxBackupIndex" value="10" />
<!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB -->
<param name="MaxFileSize" value="10MB" />
<!-- 设置日志输出的样式 -->
<layout class="org.apache.log4j.PatternLayout">
<!-- 设置日志输出的格式 -->
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m%n" />
</layout>
</appender> <!-- 设置日志缓存,及缓存大小 -->
<appender name="railyFileappender" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="512"/>
<appender-ref ref="railyFile"/>
</appender>
<!-- 整体设置日志的输出级别 -->
<root>
<level value="debug" />
<appender-ref ref="stdout"/>
<appender-ref ref="logfile"/>
<appender-ref ref="railyFile"/>
</root>
</log4j:configuration>

  可以在root统一设定,所有appender的日志级别,不过,如果在appender里面设置的高于root的,

<param name="Threshold" value="info"></param> 

以append里面的优先级为准。

如以上,控制台会从debug信息输出,log文件就只会输出info级别以上的信息。

优化:

a:控制log信息的级别,也可以起到优化的作用。

b:设置日志缓存,以及缓存大小

<param name="BufferSize" value="512"/>

   以上配置说明,当日志内容达到8k时,才会将日志输出到日志输出目的地。

c:设置日志输出为异步方式

    <!-- 设置日志缓存,及缓存大小  和日志的异步输出 -->
<appender name="async" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="512"/>
<appender-ref ref="stdout"/>
<appender-ref ref="logfile"/>
</appender>

  配置log的格式:

日志格式化(Layout)
%c 类全名
%d 时间
%f 类名
%l 位置
%m 信息
%n 换行
%p 级别
%r 耗时
%t 线程名

Lo4j(二)级别和优化的更多相关文章

  1. MySQL优化二(连接优化和缓存优化)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  2. Android学习总结(十二)———— BaseAdapter优化

    一.BaseAdapter的基本概念 对于Android程序员来说,BaseAdapter肯定不会陌生,灵活而优雅是BaseAdapter最大的特点.开发者可以通过构造BaseAdapter并搭载到L ...

  3. 2019.03.28 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)

    传送门 题意咕咕咕 思路:直接上二维bitbitbit优化dpdpdp即可. 代码: #include<bits/stdc++.h> #define N 10005 #define K 5 ...

  4. POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...

  5. Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇)

    Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇) 目录 Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇) 1 Internal Locking Methods Row-Leve ...

  6. MySQL优化二 缓存参数优化

    数据库属于 IO密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数 ...

  7. MySQL学习笔记(二)性能优化的笔记(转)

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  8. MySQL优化(二):SQL优化

    一.SQL优化 1.优化SQL一般步骤 1.1 查看SQL执行频率 SHOW STATUS LIKE 'Com_%'; Com_select:执行SELECT操作的次数,一次查询累加1.其他类似 以下 ...

  9. HBase之二:Hbase优化

    1.    预先分区 默认情况下,在创建 HBase 表的时候会自动创建一个 Region 分区,当导入数据的时候,所有的 HBase 客户端都向这一个 Region 写数据,直到这个 Region  ...

随机推荐

  1. python 版websocket实现

    ubuntu下python2.76 windows python 2.79, chrome37 firefox35通过 代码是在别人(cddn有人提问)基础上改的, 主要改动了parsedata和se ...

  2. 深入了解PHP闭包的使用以及实现

    一.介绍 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应用 ...

  3. 1、简单的BackGroundWorker多线程时时刷新UI界面,并显示进度

    BackGroundWorker是微软提供的封装好了的,非常实用的控件,我们可以在控件中将其拖到Winform之中,然后简单的系统生成代码式的编辑事件处理. 以下是,比较经典且简单的实用,后面的一篇较 ...

  4. 【转载】PL/SQL配置连接ORACLE

    一.需安装ORACL客户端. 配置文件路径: E:\Oracle\product\10.1.0\Client_3\NETWORK\ADMIN\tnsnames.ora 内容如下: # TNSNAMES ...

  5. JavaScript 设计模式之单例模式

    一.单例模式概念解读 1.单例模式概念文字解读 单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象.在Ja ...

  6. 【php】基础学习1

    其中包括php基础.字符串和正则表达式的学习.具体如下: <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta h ...

  7. Linux内核中锁机制之RCU、大内核锁

    在上篇博文中笔者分析了关于完成量和互斥量的使用以及一些经典的问题,下面笔者将在本篇博文中重点分析有关RCU机制的相关内容以及介绍目前已被淘汰出内核的大内核锁(BKL).文章的最后对<大话Linu ...

  8. Codeforces 6D Lizards and Basements 2 dfs+暴力

    题目链接:点击打开链接 #include<stdio.h> #include<iostream> #include<string.h> #include<se ...

  9. Android屏幕density, dip等相关概念总结

     1.几个术语 VGA.HVGA.QVGA.WVGA.WQVGA 这些术语都是指屏幕的分辨率. VGA:Video Graphics Array.即:显示画图矩阵.相当于640×480 像素: HVG ...

  10. 使用xshell远程登录ubuntu使用vi编辑不能使用删除键方向键

    近期安装了xshell,远程登录上ubuntu后,在插入模式下,按删除键没有任何反应,按方向键分别打印出A.B.C.D,每个字符一行. 这是因为ubuntu初始化安装的是vi的tiny版本,解决办法安 ...