通过代码配置logback

import java.nio.charset.Charset;

import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.FileAppender;


/**
 * Hello world!1
 *
 */
public class MainApp
{
    public static void main( String[] args )
    {
    	Logger logger=MyLoggerFactory.getLogger();
    	logger.info("this is text log.");
        
    }
}
class MyLoggerFactory{

    private static Logger logger = null;
    public static Logger getLogger() {
    	return logger;
    }
	//在类加载时执行,保证执行一遍,不在执行,保证单实例。
	 static {
	      LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
	      FileAppender<ILoggingEvent> fa=new FileAppender<ILoggingEvent>();
	      fa.setContext(loggerContext);
	      fa.setAppend(true);
	      fa.setName("FILE");
	      String s=System.getProperty("user.dir")+"\\log.txt";
	      fa.setFile(s);
	      ConsoleAppender<ILoggingEvent> ca=new ConsoleAppender<ILoggingEvent>();
	      ca.setName("CONSOLE");
	      //内容配置
	      PatternLayoutEncoder encoder = new PatternLayoutEncoder();
	      encoder.setPattern("%msg");
	      encoder.setCharset(Charset.forName("UTF-8"));
	      encoder.setContext(loggerContext);
	      encoder.start();
	      /
	      fa.setEncoder(encoder);
	      ca.setEncoder(encoder);
	      fa.start();
	      ca.start();

	      ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger("rootLogLogger");
	      rootLogger.setLevel(Level.INFO);
	      rootLogger.addAppender(ca);
	      rootLogger.addAppender(fa);
	      rootLogger.setAdditive(false);
	      logger = rootLogger;
	  }
   
}

通过以上代码,就可以实现在命令行与文件同时输出信息,并且输出目录为当前文件夹

如果没打包之前,那么是项目根目录

如果打包后,是运行程序所在的目录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值