android Log4j学习笔记
16lz
2021-01-26
android 有自带的log但是不能很方便的保存到文件.
就用了第三方的jar包来支援了.
apache的log4j
slf4j
android-logging-log4j
导入以上jar包,然后写代码配置
//先设置文件log要保存的目录和文件名FileappLogFile=newFile(XApplication.getInstance().getRootWorkDir()//+File.separator+LOG_FILE_PATH+File.separator,LOG_FILE_NAME);addFileLogger(appLogFile.getPath());addLogCatLogger();
这里有一个问题,在文件名没有后缀名的时候会出现一些奇怪的问题.建议加入后缀名.
/***添加文件日志管理**@paramlogfile*/privatevoidaddFileLogger(Stringlogfile){try{/***文件log格式输出的格式*2014-08-1719:30:21,688[ERROR][com.xxx.xxx.activity@Thread-150]*/privateStringfileLogLayoutPatten="%d{yyyy-MM-ddHH:mm:ss,SSS}[%-5p][%c@%t]-%m%n";Appenderappender=newDailyRollingFileAppender(newPatternLayout(fileLogLayoutPatten),logfile,"yyyy-MM-dd");LevelRangeFilterf=newLevelRangeFilter();f.setLevelMin(fileLevel);appender.addFilter(f);LoggerrootLogger=getRootLogger();rootLogger.addAppender(appender);}catch(IOExceptione){Log.e("Log4jConfigurator","Failedtocreatelogfile"+logfile,e);}}
以上为文件log
/***添加LogCat的日志(控制台)*/privatevoidaddLogCatLogger(){LogCatAppenderlogCatAppender=newLogCatAppender(newPatternLayout());LevelRangeFilterf=newLevelRangeFilter();f.setLevelMin(logcatLevel);logCatAppender.addFilter(f);LoggerrootLogger=getRootLogger();rootLogger.addAppender(logCatAppender);}
以上为LogCat
/****@return*/privateLoggergetRootLogger(){LoggerrootLogger=Logger.getRootLogger();rootLogger.setLevel(rootLevel);returnrootLogger;}
//此处为org.slf4j.Logger便于切换Loggerlog=LoggerFactory.getLogger(xxx.class);
Log4j添加文件附加时有两种
一种是DailyRollingFileAppender按日期生成新文件.
一种是RollingFileAppender按log文件最大长度限度生成新文件.
更多相关文章
- Android(安卓)SDK无法更新、谷歌无法打开问题的解决
- android9.0解决http获取异常
- Cordova 3.x 基础(13) -- 为Android(安卓)APK签名
- 上传多张图片到服务器
- 基于Android(安卓)Studio 的NDK之 “Hello,World!”
- Android学习笔记(三) 之模拟打电话
- Android理解Fragment生命周期,fragment和fragmentactivity解析
- Android(安卓)HIDL 中 hidl-gen使用
- android 8.1Settings添加设置项