java代码实现LogBack动态输出日志【无配置文件纯代码】

需求:

      需要传入某一个文件或者类或者方法的名字,生成对应日志文件,且每一个传入名字的文件单独有一个文件夹,子文件夹为日期,日期文件夹里面包含warn.log,error.log,debug.log,info.log。通过过滤器实现只打印对应级别的日志。

 

遇到的问题:

      度娘了很久,网上关于logback的几乎都是xml进行配置的,但是经过尝试,xml配置的方式不能直接进行动态的输出,故此方法暂时淘汰,遂想到用纯代码的方式,尝试了许多次才得到正确的结果,所以记录下来,以免今后少走弯路。

 

内容:

1.创建LoggerBuilder类,这个类相当于一个日志工具类,之后其他类需要用日志的时候,直接调用它的方法就好了。

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.rolling.RollingFileAppender;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Wzy525110
 */
@Component
public class LoggerBuilder {

    private static final Map<String,Logger> container = new HashMap<>();
    public Logger getLogger(String name) {
        Logger logger = container.get(name);
        if(logger != null) {
            return logger;
        }
        synchronized (LoggerBuilder.class) {
            logger = container.get(name);
            if(logger != null) {
                return logger;
            }
            logger = build(name);
            container.put(name,logger);
        }
        return logger;
    }




    private static Logger build(String name) {
        RollingFileAppender errorAppender =new AppenderTest().getAppender(name,Level.ERROR);
        RollingFileAppender infoAppender =new AppenderTest().getAppender(name,Level.INFO);
        RollingFileAppender warnAppender =new AppenderTest().getAppender(name,Level.WARN);
        RollingFileAppender debugAppender =new AppenderTest().ge
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值