【转】Android使用Log4j例子
2013-12-24 15:00
423 查看
Step 1
Download Log4J library from http://logging.apache.org/log4j/1.2/download.htmlStep 2
Configuring Log4J library the normal way - using XML configuration file - can't be used in Android based Java application as the configuration classes of Log4J use beans from the package "java.beans" (e.g. PropertyDescriptor). Not all classes of this package are supported in Android, so using Log4J directly in Android Java application will case exceptions like the following one to be thrown: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
There is a project called android-logging-log4j, which provides a convenient way to configure the log4j system properly.
Download "Android Logging Log4J" library fromhttp://code.google.com/p/android-logging-log4j/downloads/list
Step 3
Add Both libraries "log4j" and "android-logging-log4j" to your application librariesStep 4
In order to log to a file on the external storage, the following permission needs to be placed in AndroidManifest.xml<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Step 5
In your application Main class: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");
}
}
Now you will have log4j configured to log to Path: (Environment.getExternalStorageDirectory() + File.separator + "MyApp" + File.separator + "logs" + File.separator + "log4j.txt") with DEBUG level and ERROR lever for "org.apache" package with file pattern "%d %-5p [%c{2}]-[%L] %m%n" and other configuration parameters.
6. 程序中使用的实例。
import org.apache.log4j.Logger; public class ExampleLog4J{ privatefinalLogger log =Logger.getLogger(ExampleLog4J.class); publicvoid myMethod(){ log.info("This message should be seen in log file and logcat"); } }
相关文章推荐
- 使用eclipse打开android_sdk自带的例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- 使用android 调用震动的例子
- Android记录6--ViewPage+Fragment的使用例子
- android 不使用xml的 Animation 简单例子
- Android笔记--handler的使用的一个例子
- android中Dialog 的使用例子
- Android之WebView的使用例子——WebSetting、WebViewClient、WebChromeClient
- Ubuntu 14.04 Android 使用Maven一 使用例子工程
- android使用Broadcast的一个例子
- Android中使用log4j
- Android Dialog的使用例子Demo
- 地图入门(一):Android上使用Google Maps加标注的最最简单的例子
- 使用android 调用震动的例子
- log4j使用例子
- Android中使用Log4j及配置说明
- Android中使用log4j
- Android 中的log4j使用
- android DialogFragment使用 附例子
- Android中使用log4j