如果要直接在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自动化测试初探(二): Hierarchyviewer 捕获Element的实现原
  2. Android:使用ViewPager实现左右滑动切换图片 (简单版)
  3. Android(安卓)Jetpack应指南学习笔记8——Navigation(二)使用saf
  4. 高通android10.0默认赋予第三方apk权限
  5. Android使用ViewPager实现左右滑动效果
  6. 利用Handler来更新android的UI
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. JAVA-ANDROID
  2. Qt for Android程序沉浸式启动页面(去除标
  3. shell批量转换iOS和Android图标
  4. 壁纸服务的启动过程
  5. android 异步通信简单小计
  6. Android中的人机交互技术
  7. android view画图
  8. 4.8 ImageView的使用
  9. android GridView的应用举例
  10. android学习之传感器的基本使用