如果要直接在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中关于Audio库的知识
  2. Android(安卓)studio NDK开发
  3. Android(安卓)- ToDoList 详解
  4. Android(安卓)--- MediaPlayer的使用详解
  5. Android(安卓)通过AlertDialog创建伪菜单
  6. Android中Preference的使用以及监听事件分析
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android移动开发,传输数据到电脑本地服务
  2. android解析json(以解析時时价为例),java也
  3. Android(安卓)Get,Post,AsyncHttpClient
  4. android封装Toast
  5. 各种android下载资源
  6. ViewGroup和LayoutParams之间的关系
  7. Launcher源码中Intent.createChooser()实
  8. Android中利用matrix 控制图片的旋转、缩
  9. 解析 dex 文件结构 - DexHeader
  10. android 复制 粘贴 剪切功能应用