【背景】
折腾:
期间,打算先去用这个microlog4android,看看能否方便的实现,log输出到文件的功能。
【折腾过程】
1.去:
http://code.google.com/p/microlog4android/
下载:
加到项目中:
直接windows中拷贝jar文件,然后到项目中的libs文件夹中Ctrl+V粘贴,即可导入。
2.参考:
Android Writing Logs to text File
去试试。
再去下载一个配置文件:
修改内容为:
# This is a simple Microlog configuration file microlog.level=DEBUG microlog.appender=LogCatAppender;FileAppender microlog.formatter=PatternFormatter microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T
放到项目的assets目录下。
3.去试试:
import com.google.code.microlog4android.Logger; import com.google.code.microlog4android.LoggerFactory; import com.google.code.microlog4android.config.PropertyConfigurator; public class BaseActivity extends Activity { private static final Logger gLogger = LoggerFactory.getLogger(); public Logger createLogFile() { PropertyConfigurator.getConfigurator(this).configure(); return null; } @Override protected void onCreate(Bundle savedInstanceState) { createLogFile(); gLogger.debug("test android log to file");
调试时,是可以看到logcat中输出:
但是突然发现,不知道log文件是什么文件,不知道放在哪里了。。。
4.然后就是想办法,找到如何配置log输出文件路径和文件名。
后来在/mnt/sdcard中发现了对应的log文件:
即:
/mnt/sdcard/microlog.txt
5.其内容也的确很简单:
6.然后发现官网:
http://code.google.com/p/microlog4android/wiki/Configuration
给出的例子:
http://myossdevblog.blogspot.com/2010/02/reading-properties-files-on-android.html
根本就失效了,打不开。。。
7.妹的,后来发现需要翻墙才能打开。。。。
然后的然后,看了:
中的一些代码,发现相关的代码是:
private void setPropertiesForFileAppender(Appender appender, Properties properties) { String fileName = (String) properties.getProperty(FILE_APPENDER_FILE_NAME_KEY, "microlog.txt"); ((FileAppender)appender).setFileName(fileName); String append_string = (String) properties.getProperty(FILE_APPENDER_APPEND_KEY, "true"); boolean append_bool = Boolean.parseBoolean(append_string); ((FileAppender)appender).setAppend(append_bool); }
但是不知道如何覆盖默认文件名。
8.后来是参考:
http://myossdevblog.blogspot.com/2010/05/microlog-microlog4android-slf4j-and.html
看到:
My properties: microlog.appender=FileAppender;LogCatAppender microlog.formatter=PatternFormatter microlog.appender.FileAppender.fileName=mylog.txt microlog.appender.FileAppender.append=true microlog.formatter.PatternFormatter.format=%d %P %c – %m %T |
所以,把自己配置改为:
# This is a simple Microlog configuration file microlog.level=DEBUG microlog.appender=LogCatAppender;FileAppender microlog.formatter=PatternFormatter microlog.appender.FileAppender.fileName=crifanli.log microlog.appender.FileAppender.append=true microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T
然后再去看看文件名是否会变化。
结果,没有关闭AVD的情况下,再次调试,文件名没变化。
再去重新启动avd调试,看看是否会有效果,结果还是没变化。
对应的logcat中的配置显示是:
11-01 15:34:27.718: I/Microlog.PropertyConfiguration(1588): Configure using the simple style (aka classic style) 11-01 15:34:27.718: I/Microlog.PropertyConfiguration(1588): Root level: DEBUG 11-01 15:34:27.718: I/Microlog.PropertyConfiguration(1588): Adding appender com.google.code.microlog4android.appender.LogCatAppender 11-01 15:34:27.718: I/Microlog.PropertyConfiguration(1588): Adding appender com.google.code.microlog4android.appender.FileAppender 11-01 15:34:29.198: I/System.out(1588): Precision specifier for %c is 1 11-01 15:34:29.198: D/Microlog(1588): 0 [DEBUG] test android log to file
结论是:
对于此处用:
microlog.appender.FileAppender.fileName=crifanli.log
根本没有效果:
没有生成我们所需要的对应的log文件。
9.另外,那人提到了:
BTW The pattern is ignored, since the implementation of the new PropertyConfigurator has no support for it. This will be released next week. |
结果,现在都2013年11月1号了,结果是:
说是下周发布的,却是2,3年后,还没实现。。。
即:
上面的:
microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T
是无效的。。。
然后发现:
这人:
关于Android写LOG日志到SD卡文件之microlog4android使用
也遇到同样问题:
配置log文件名,结果没生效。
那人是重新用最新源码打包成jar供自己用,而使得该配置生效的。。。
【总结】
总体感觉:这个microlog4android,还是蛮坑爹的,还是缺少维护,功能不够强,不够好用的。
最终决定:放弃之。
然后后来:
用的是: