log4j与slf4j的配置

4 篇文章 0 订阅

使用log4j需要

1.log4j-1.2.17.jar    就这一个,没错!你没看错!!!!

2.默认放在classpath下(java项目src下,maven项目resource下)

也可以用PropertyConfigurator.configure();里面的路径是项目根目录,src就是在项目根目录configure("src/log4j.properties")就相当于默认

3.(1)使用properties或xml进行配置

(2)如果需要单个java文件单独日志

java包里导入

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;所在的包

Logger logger = Logger.getLogger(test.class.getName());

logger.info("test3.info")

这个跟system.out.print的用法差不多,字符串拼接

if (logger.isDebugEnabled()) {
    logger.debug("Processing trade with id: " + id + " symbol: " + symbol);
}

使用slf4j需要

slf4j-api-1.7.26.jar:导入import org.slf4j.Logger;import org.slf4j.LoggerFactory;所在的包

 slf4j-log4j12-1.7.26.jar   slf4j和log4j整合需要的包

log4j-1.2.17.jar            slf4j基于log4j,没有不行

使用slf4j日志的类中只要导入上述两个包即可

特定类指定log输出,在类中使用

Logger logger = LoggerFactory.getLogger(类名.class);

logger.info("Stringbuffer:{}",pageCode.toString());

pageCode.toString()会代替{}

这个跟c语言的printf  %s类似,不同的是{}不仅可以填入字符串类型的,其他类型也可以

logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);

上代码:

使用slf4j日志的java文件

package Stringbuffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

//import org.apache.log4j.Logger;
//import org.apache.log4j.PropertyConfigurator;
public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Logger logger = LoggerFactory.getLogger(test.class);
    //PropertyConfigurator.configure("F:/Users/27819/workspace/blogTest/src/log4j.properties");
        //Logger logger = Logger.getLogger(test.class.getName());
         StringBuffer pageCode = new StringBuffer();
         //"\r\n" Stringbuffer换行
             pageCode.append("<li><a href='" + "targetUrl" + "?page=1&" + "param" + "'>首页</a></li>\r\n");
             pageCode.append("<li><a href='" + "targetUrl" + "?page=" + "(currentPage-1) "+ "&" + "param" + "'>上一页</a></li>\r\n");
         
             pageCode.append("<li class='disabled'><a>首页</a></li>\r\n");
             pageCode.append("<li class='disabled'><a>上一页</a></li>\r\n");
             logger.info("Stringbuffer:{}",pageCode.toString());
             //logger.debug();
    }

}

 

关于 properties配置文件该如何配置,slf4j和log4j配置方式相同,详情自搜

下面是一个使用上述slf4j进行特定java文件输出日志到特定日志文件的配置,

#该配置实现了一个存放项目所有debug权限以上的log文件
#          一个存放项目所有error权限以上的log文件
#           一个存放特定java文件debug权限以上的log文件
#           一控制台输出所有debug权限以上的操作

 

 

#rootlogger之后第一个属性是级别,但也可以把debug换成a,b,c,不配置级别,
#如果第一个是自定义的appenderName(System,error,all都是appenderName,不是关键字)默认不识别,
log4j.rootLogger=debug,System,error,all

#Stringbuffer.test  为包名.类名    INFO为显示的日志等级  有FATAL、ERROR、WARN、INFO、DEBUG四个等级
#这个不论在all,system还是自己专有的log文件中都没有info之下(debug)日志输出,直接在类截断
log4j.logger.Stringbuffer.test=INFO,Test


#输出到控制台,ConsoleAppender表示输出到控制台
log4j.appender.System=org.apache.log4j.ConsoleAppender
log4j.appender.System.Target = System.out
#使用自定义日志格式化器
log4j.appender.System.layout=org.apache.log4j.PatternLayout
#指定日志的输出格式
log4j.appender.System.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} [%t] %l %-5p - %m%n

#输出error.log文件中,这个文件存储项目所有的error以上的信息FATAL、ERROR
log4j.appender.error=org.apache.log4j.RollingFileAppender
log4j.appender.error.File=E:/log4jlog/log/error.log
log4j.appender.error.MaxFileSize=100MB
log4j.appender.error.MaxBackupIndex=30
log4j.appender.error.Append = true
#设置log文件存储的级别
log4j.appender.error.threshold = error
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} [%t] %c %-5p - %m%n

 

#输出all.log文件中,这个文件存储项目所有的debug以上的信息FATAL、ERROR、WARN、INFO、DEBUG、
log4j.appender.all=org.apache.log4j.RollingFileAppender
log4j.appender.all.File=E:/log4jlog/log/all.log
log4j.appender.all.MaxFileSize=100MB
log4j.appender.all.MaxBackupIndex=30
log4j.appender.all.Append = true
#设置log文件存储的级别
log4j.appender.all.threshold = debug
log4j.appender.all.layout=org.apache.log4j.PatternLayout
log4j.appender.all.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} [%t] %c %-5p - %m%n

#输出Test4.log 文件中,这个文件只存储Test.java的debug信息
log4j.appender.Test=org.apache.log4j.RollingFileAppender
log4j.appender.Test.File=E:/log4jlog/log/Test4.log
log4j.appender.Test.MaxFileSize=100MB
log4j.appender.Test.MaxBackupIndex=30
log4j.appender.Test.Append = truelog4j.appender.Test.threshold = debug
log4j.appender.Test.layout=org.apache.log4j.PatternLayout
log4j.appender.Test.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} [%t] %c %-5p - %m%n

 

 

 

 

     level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
     appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
     例如:log4j.rootLogger=info,A1,B2,C3 配置了3个输出地方,这个名字可以任意(如上面的db),但必须与我们在后面进行的设置名字对应;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值