在android中,实现输出log内容到sd卡中的文件里面,做法是:

1.导入者两个jar包

2.测试代码

importde.mindpipe.android.logging.log4j.LogConfigurator;importjava.io.File;importandroid.os.Environment;importorg.apache.log4j.Level;importorg.apache.log4j.Logger;publicclassBaseActivityextendsActivity{privateLoggergLogger;publicvoidconfigLog(){finalLogConfiguratorlogConfigurator=newLogConfigurator();logConfigurator.setFileName(Environment.getExternalStorageDirectory()+File.separator+"crifanli_log4j.log");//SettherootloglevellogConfigurator.setRootLevel(Level.DEBUG);//SetloglevelofaspecificloggerlogConfigurator.setLevel("org.apache",Level.ERROR);logConfigurator.configure();//gLogger=Logger.getLogger(this.getClass());gLogger=Logger.getLogger("CrifanLiLog4jTest");}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){configLog();gLogger.debug("testandroidlogtofileinsdcardusinglog4j");}

在AndroidManifest.xml中,增加如下设置:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

否则会报 Caused by: java.io.FileNotFoundException: /storage/sdcard0/crifanli_log4j.log: open failed: EACCES (Permission denied)错误

最后即可实现

(1)可以在/mnt/sdcard中生成对应的crifanli_log4j.log文件

(2)log输出的内容中,是DEBUG,且对应的是自己的字符串标识符CrifanLiLog4jTest

jar包下载地址http://down.51cto.com/data/2155282