如果要直接在android工程中使用log4j,是有点问题的,会报如下的错:
11-23 09:44:56.947: D/dalvikvm(1585): GC_FOR_MALLOC freed 3278 objects / 311568 bytes in 31ms
rejecting opcode 0x21 at 0x000a
rejected Lorg/apache/log4j/config/PropertySetter;.getPropertyDescriptor
(Ljava/lang/String;)Ljava/beans/PropertyDescriptor;
Verifier rejected class Lorg/apache/log4j/config/PropertySetter;
Exception Ljava/lang/VerifyError; thrown during Lorg/apache/log4j/LogManager;.
Shutting down VM
threadid=1: thread exiting with uncaught exception (group=0x400259f8)
FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
...
Caused by: java.lang.VerifyError: org.apache.log4j.config.PropertySetter
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:772)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)
at org.apache.log4j.LogManager.(LogManager.java:127)
... 20 more

因此,可以另外多下载一个叫android-logging-log4j的项目,地址在:
http://code.google.com/p/android-logging-log4j/downloads/list,注意,原本的log4j还是需要的。

在AndroidManifest.xml中,增加如下设置:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后在程序中如下使用:
package com.android.myapp; .import java.io.File; import org.apache.log4j.Level; import org.apache.log4j.Logger;.import android.app.Application; import android.os.Environment; import de.mindpipe.android.logging.log4j.LogConfigurator; . public class MyApplication extends Application {         @Override         public void onCreate() {                 super.onCreate();                 LogConfigurator logConfigurator = new LogConfigurator();                 logConfigurator.setFileName(Environment.getExternalStorageDirectory()                                 + File.separator + "MyApp" + File.separator + "logs"                                 + File.separator + "log4j.txt");                 logConfigurator.setRootLevel(Level.DEBUG);                 logConfigurator.setLevel("org.apache", Level.ERROR);                 logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");                 logConfigurator.setMaxFileSize(1024 * 1024 * 5);                 logConfigurator.setImmediateFlush(true);                 logConfigurator.configure();                 Logger log = Logger.getLogger(MyApplication.class);                 log.info("My Application Created");         } }

现在日志则是以:
Environment.getExternalStorageDirectory() + File.separator + "MyApp" + File.separator + "logs" + File.separator + "log4j.txt
的方式保存了。其他和log4j的用法差不多了。

更多相关文章

  1. android中动画的使用
  2. Android(安卓)使用selector改变按钮状态实例详解
  3. 编译Android(安卓)使用 Java5 还是 Java6
  4. RecyclerView详解(二):ItemDecoration使用(kotlin)
  5. android.support.v4.app.Fragment和android.app.Fragment区别
  6. Android之使用HttpURLConnection进行网络访问
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 在deepin系统中adb操作android文件的方法
  2. Android(安卓)显示不满屏的问题解决
  3. Android六大基本布局详解
  4. android的selector的用法
  5. Android布局之RelativeLayout学习
  6. android 模拟器命令 转载
  7. Android中的数据存储与传输
  8. Android笔记1
  9. android:launchMode="singleTask" 与 onN
  10. git 获取android source