栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android集成日志框架logback-android(log4j)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android集成日志框架logback-android(log4j)

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);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/319147.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号