最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【记录】尝试用android中microlog4android实现log输出到文件的功能

Android crifan 4635浏览 0评论

【背景】

折腾:

【记录】给Android中添加log日志输出到文件

期间,打算先去用这个microlog4android,看看能否方便的实现,log输出到文件的功能。

【折腾过程】

1.去:

http://code.google.com/p/microlog4android/

下载:

microlog4android-1.0.0.jar

加到项目中:

直接windows中拷贝jar文件,然后到项目中的libs文件夹中Ctrl+V粘贴,即可导入。

2.参考:

Android Writing Logs to text File

去试试。

再去下载一个配置文件:

microlog.properties

修改内容为:

# 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中输出:

logcat can see microlog4android but not know file

但是突然发现,不知道log文件是什么文件,不知道放在哪里了。。。

4.然后就是想办法,找到如何配置log输出文件路径和文件名。

后来在/mnt/sdcard中发现了对应的log文件:

found mnt sdcard microlog txt file pull it

即:

/mnt/sdcard/microlog.txt

5.其内容也的确很简单:

microlog file content

6.然后发现官网:

http://code.google.com/p/microlog4android/wiki/Configuration

给出的例子:

http://myossdevblog.blogspot.com/2010/02/reading-properties-files-on-android.html

根本就失效了,打不开。。。

7.妹的,后来发现需要翻墙才能打开。。。。

然后的然后,看了:

https://github.com/johanlkarlsson/microlog4android/blob/master/microlog4android-core/src/main/java/com/google/code/microlog4android/config/PropertyConfigurator.java

中的一些代码,发现相关的代码是:

        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.level=DEBUG

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.另外,那人提到了:

My Open Source Software Development Blog said…

BTW The pattern is ignored, since the implementation of the new PropertyConfigurator has no support for it. This will be released next week.

May 20, 2010, 11:09:00 AM

结果,现在都2013年11月1号了,结果是:

说是下周发布的,却是2,3年后,还没实现。。。

即:

上面的:

microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T

是无效的。。。

然后发现:

这人:

关于Android写LOG日志到SD卡文件之microlog4android使用

也遇到同样问题:

配置log文件名,结果没生效。

那人是重新用最新源码打包成jar供自己用,而使得该配置生效的。。。

 

【总结】

总体感觉:这个microlog4android,还是蛮坑爹的,还是缺少维护,功能不够强,不够好用的。

最终决定:放弃之。


然后后来:

【记录】给Android中添加log日志输出到文件

用的是:

【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

转载请注明:在路上 » 【记录】尝试用android中microlog4android实现log输出到文件的功能

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.197 seconds, using 22.16MB memory