Logback 继承自 log4j。
可以通过引入依赖,或者引入jar包来使用
参考Android使用logback日志框架_jordanhgl的专栏-CSDN博客
特性:
支持占位符 ‘{}’
支持xml、代码方式配置appender
文件滚动方式: 按时间 按文件大小等
支持日志文件压缩,当日志文件以.gz or .zip结尾
支持发送邮件(默认error级别日志)
支持写入数据库(目前支持三种 oracle、mysql & sql server)
3、Appender
Appender用来指定用户采用那种方式进行日志记录、输出,常用的方式如控制台、文件输出。一下列举了几个使用频率较高的appender,均为logback提供,大家在使用时只需要做好配置工作即可。
3.1 ConSoleAppender
3.2 FileAppender
3.3 RollingFileAppender
3.5 SMTPAppender
配置文档文件名称必须是app/src/main/assets/logback.xml
%logger{12} [%-20thread] %msg
获取日志器
需要在每一个Activity初始化
//获取日志框架
//第二参数就是Tag
Logger log = LoggerFactory.getLogger(LoginActivity.class);
然后就可以打印了
//打印日志
log.debug("initViews");
也可以在运行时配置
参考Android使用logback日志框架_jordanhgl的专栏-CSDN博客
private String PREFIX = "hgltest";
static String LOG_DIR;
static {
File sdfile = Environment.getExternalStorageDirectory();
LOG_DIR = sdfile.getAbsolutePath() + "/hgl_log";
}
//配置logback appender
private void configureLogbackDirectly() {
// reset the default context (which may already have been initialized)
// since we want to reconfigure it
LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
lc.stop();
// setup FileAppender
PatternLayoutEncoder encoder1 = new PatternLayoutEncoder();
encoder1.setContext(lc);
encoder1.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
encoder1.start();
RollingFileAppender fileAppender = new RollingFileAppender<>();
fileAppender.setContext(lc);
String outputPath = LOG_DIR + "/"+PREFIX+".log";
Log.d("hgl_debug", "outputpath = " + outputPath);
fileAppender.setFile(outputPath);
fileAppender.setEncoder(encoder1);
//设置rolling policy
TimebasedRollingPolicy rollingPolicy = new TimebasedRollingPolicy();
rollingPolicy.setFileNamePattern(LOG_DIR + "/" + PREFIX + "_%d{yyyyMMdd_HH-mm}.log"); //rollover action based on filepattern
rollingPolicy.setMaxHistory(60); //设置最大的存档文件个数
rollingPolicy.setParent(fileAppender);
rollingPolicy.setContext(lc);
rollingPolicy.start();
fileAppender.setRollingPolicy(rollingPolicy);
fileAppender.start();
// setup LogcatAppender
PatternLayoutEncoder encoder2 = new PatternLayoutEncoder();
encoder2.setContext(lc);
encoder2.setPattern("[%thread] %msg%n");
encoder2.start();
LogcatAppender logcatAppender = new LogcatAppender();
logcatAppender.setContext(lc);
logcatAppender.setEncoder(encoder2);
logcatAppender.start();
// add the newly created appenders to the root logger;
// qualify Logger to disambiguate from org.slf4j.Logger
ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.addAppender(fileAppender);
root.addAppender(logcatAppender);
}



