android 有自带的log但是不能很方便的保存到文件.

就用了第三方的jar包来支援了.

  1. apache的log4j

  2. slf4j

  3. 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文件最大长度限度生成新文件.



更多相关文章

  1. Android(安卓)SDK无法更新、谷歌无法打开问题的解决
  2. android9.0解决http获取异常
  3. Cordova 3.x 基础(13) -- 为Android(安卓)APK签名
  4. 上传多张图片到服务器
  5. 基于Android(安卓)Studio 的NDK之 “Hello,World!”
  6. Android学习笔记(三) 之模拟打电话
  7. Android理解Fragment生命周期,fragment和fragmentactivity解析
  8. Android(安卓)HIDL 中 hidl-gen使用
  9. android 8.1Settings添加设置项

随机推荐

  1. 【DB笔试面试824】在Oracle中,什么是ADDM?
  2. 与亲生的Redis Cluster,来一次亲密接触
  3. 【秒杀】二、what?秒杀也可以做引擎?
  4. 【DB笔试面试510】在Oracle中,DBMS_OUTPUT
  5. 这次要是讲不明白Spring Cloud核心组件,那
  6. 【DB笔试面试253】在Oracle中,有哪些角色
  7. 【DB笔试面试119】在Oracle中,Identify th
  8. 架构秘笈:移花接木。使用mysql模拟redis
  9. 学完这100多技术,能当架构师么?(非广告)
  10. SpringBoot如何加载jar包外面的配置文件?