Log4j自定义Appender

Posted The more confused, the more ef

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4j自定义Appender相关的知识,希望对你有一定的参考价值。

log4j 环境包括三个主要组件:

logger(日志记录器): 控制要启用或者禁用哪些日志记录语句。可以对日志记录器制定如下级别:

  ALL、DEBUG、INFO、WARN、ERROR、FATA、OFF。

layout(布局):根据用户的愿望格式化日志记录请求。

appender:向目的地发送格式化的输出。log4j自带了还记中appender如下:

  1. ConsoleAppender
  2. FileAppender
  3. SMTPAppender
  4. JDBCAppender
  5. JMSAppender
  6. NTEventAppender
  7. SyslogAppender

       也可以创建自定义的Appender

******************************************************华丽的分割丰富********************************************************************************

创建自定义的Appender

1. 继承AppenderSkeleton类,实现三个方法(也可以继承已有的Appender,重写某些方法,实现需要的逻辑)

public class SimpleAppender extends AppenderSkeleton {
  //在log4j.xml中配置需要的属性,此处可以注入
    private String developer;

    @Override
    protected void append(LoggingEvent loggingEvent) {
     //自定义输出什么 System.out.println(
"=========" + developer + "Test===========" + loggingEvent.getMessage()); } @Override public boolean requiresLayout() {
     //是否需要布局,如果返回false,即使log4j.xml配置了layout也不生效。
return false; } @Override public void close() {
    //释放资源     this.closed = true; }
public String getDeveloper() { return developer; } public void setDeveloper(String developer) { this.developer = developer; }

 2.配置log4j.xml

<!--自定义Appender-->
    <appender name="simpleAppender" class="com.cn.simple.logger.SimpleAppender">
        <param name="developer" value="lqw"></param>
    </appender>

3.执行

        logger.info("[springDemo]--------info信息");
        logger.warn("[springDemo]--------warn提醒");
        logger.error("[springDemo]--------error异常");    

4.输出结果

=========lqwTest===========[springDemo]--------info信息
=========lqwTest===========[springDemo]--------warn提醒
=========lqwTest===========[springDemo]--------error异常

 

参考文档:

http://www.360doc.com/content/16/0121/16/14567867_529569233.shtml

log输出到frame参考:

http://zhangjunhd.blog.51cto.com/113473/48895/

 




以上是关于Log4j自定义Appender的主要内容,如果未能解决你的问题,请参考以下文章

我的Eclipse插件中找不到自定义log4j appender

自定义log4j的appender写es日志

如何用log4j输出多个自定义日志文件

如何在log4j2中创建自定义Appender?

log4j2自定义Appender(输出到文件/RPC服务中)

如何在 log4j2 中创建自定义 Appender?