◎筱米加步枪◎.Blog

Happy coding

JBoss下的log4j 配置

搞了一个上午~~终于在Jboss下成功的将想要的信息写到文件里去了~~

贴个相关配置以及解释~~

Jboss下的log4j配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!-- ###
        ### 输出方式是 文件 的形式输出 DailyRollingFileAppender 是每天一个文件
        ### 拓展:log4j输出方式有5种,分别是:
        ### 1.org.apache.log4j.ConsoleAppender(控制台)
        ### 2.org.apache.log4j.FileAppender(文件)
        ### 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
        ### 4.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
        ### 5.org.apache.log4j.RollingFileAppender(每次都产生一个日志文件)
        ### -->
   <appender name="FileRequest" class="org.jboss.logging.appender.DailyRollingFileAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
 
      <!-- ### 指定文件的路径 -->
      <param name="File" value="${jboss.server.log.dir}/sendRequest.log"/>
 
      <!-- ### 在重启服务时,设置是否往原有记录继续添加.
           ### true:继续添加 false:删除掉原来的再添加 -->
      <param name="Append" value="false"/>
 
      <!-- ### 类似于过滤器,把低于指定日志级别的日志不显示出来
           ### 日志级别从高到低:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL -->
      <param name="Threshold" value="DEBUG"/> 
 
      <!-- Rollover at midnight each day -->
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>  
 
      <!-- ### 配置日志的输出格式
           ###%m 输出代码中指定的消息
           ###%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
           ###%r 输出自应用启动到输出该log信息耗费的毫秒数
           ###%c 输出所属的类目,通常就是所在类的全名
           ###%t 输出产生该日志事件的线程名
           ###%n 输出一个回车换行符
           ###%d 输出日志时间点的日期或时间{yyyy-MM-dd HH:mm:ss,SSS}
           ###%l 输出日志事件的发生位置,包括类目名|发生线程|在代码中的行数 -->
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{HH:mm:ss} %m%n"/>
      </layout>
   </appender>
 
 
   <!-- ### 定义日志名
        ### additivity 是设置是否继承标志父类输出源的标志
        ### true:会在父输出源中输出 false:只会在自己定义的输出源输出-->
   <category name="com.shine.proxy.SendRequest" additivity="false">
        <!-- ###定义输出级别 -->
        <priority value="DEBUG" />
        <!-- ###定义引用的Appender -->
        <appender-ref ref="FileRequest"/>
   </category>
 
   <!--
     ### 对于上一段,还可以有如下写法:
         <logger name="com.shine.proxy.SendRequest" additivity="false">
            <level value="DEBUG" />
            <appender-ref ref="FileRequest"/>
         </logger>
     -->

Log4j将日志输出到文件配置

今天,为了测试速度,很无奈的要去统计委托回报的数量。需要将日志输出到文件来统计。

得yoyo相助,得到如下配置可用:

1
2
3
4
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File = D:/output.log   #这里指定文件路径
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%l%m%n

另外需要注意

要设置  log4j.rootLogger=DEBUG, file

Log4j之Logger等级和配置文件

前几天,看了之前的《计量器管理系统》中,遇到Log4j的一些使用方法,和之前用的Log4j,虽然用了,却不知道什么意思,前两天百度谷歌了下,

总结如下:(电脑崩溃搞了两天~~~无比郁闷~~)

Log4j一个很重要的类就是Logger,它负责日志处理的大部分操作。

贴个代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * <p>测试Log4j(仅供学习)</p>
 *
 * @author ChenST
 *
 * @create 2010-3-7
 */
public class TestLog4j {
     
    /**
     * 获取一个属于TestLog4j的Logger对象
     */
    //Logger是日志处理的核心组件,负责大部分的日志处理操作
    private static Logger logger=Logger.getLogger(TestLog4j.class);
     
    public static void main(String[] args) {
         
        //Logger有7种等级,分别是:(从低到高)
        //1. Level.ALL    打开所有日志记录
        //2. Level.DEBUG  表示信息对调试过程非常有帮助
        //3. Level.INFO   表示强调应用程序的运行过程
        //4. Level.WARN   表明可能存在潜在的错误
        //5. Level.ERROR  表明虽然发生错误事件,仍然不影响系统的继续运行
        //6. Level.FATAL  严重错误,有可能将会使系统退出
        //7. Level.OFF    关闭所有日志记录
         
        //设置日志等级(默认可从log4j.properties配置中获取)
        //logger.setLevel(Level.WARN);
         
        logger.debug("debug");
        logger.info("info");
        logger.warn("wran");
        logger.error("error");
        logger.fatal("fatal");
    }
}

接着是配置文件log4j.properties文件,以前就是拷贝进去就完事了~~现了解了点点~:

 这是之前经常用的配置文件,只是现在做了注释~~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#配置根Logger,第一个为输出级别,只有该级别和该级别以上的输出
log4j.rootLogger=DEBUG,CONSOLE
 
#子日志是否使用rootLogger的配置(true是使用logger的配置)
log4j.addivity.org.apache=true
 
#将log4j.rootLogger中定义的CONSOLE输出到控制台
#(org.apache.log4j.ConsoleAppender表示控制台)
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
 
#日志的级别
log4j.appender.Threshold=WARN
 
#指定输出控制台上
log4j.appender.CONSOLE.Target=System.out
 
#PatternLayout表示可以灵活的展示布局方式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
 
#展示了输出格式,详情如下:
#   %m   输出代码中指定的消息
#  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#  %r   输出自应用启动到输出该log信息耗费的毫秒数
#  %c   输出所属的类目,通常就是所在类的全名
#  %t   输出产生该日志事件的线程名
#  %n   输出一个回车换行符
#   %d   输出日志时间点的日期或时间,
#  %l   输出日志事件的发生位置
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

因此,输出结果为:

[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0    [main] DEBUG com.shine.log4j.TestLog4j  - debug
[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0    [main] INFO  com.shine.log4j.TestLog4j  - info
[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0    [main] WARN  com.shine.log4j.TestLog4j  - wran
[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0    [main] ERROR com.shine.log4j.TestLog4j  - error
[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0    [main] FATAL com.shine.log4j.TestLog4j  - fatal

做个备忘~~~hoho~