问题
What is the best logger framework which perfectly use in Android system for logging text into file?
I tried to use SLF4J-android but I got an exception
04-29 12:58:57.604: E/AndroidRuntime(372): java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
here is my code:
public class Main extends TabActivity {
private static final Logger log = LoggerFactory.getLogger(Main.class);
I added the slf4j-android-1.6.1-RC1.jar into build path
What will be the problem?
回答1:
slf4j-android
only supports logging to logcat
and thus omits several classes from the regular SLF4J jar. If you want to use logback to log to a file, you need the API jar (not slf4j-android
) and logback-android. You're looking for the FileAppender or RollingFileAppender.
Instructions:
Add
slf4j-api-<version>.jar
andlogback-android-<version>.jar
to your classpath.Create the file
assets/logback.xml
in your project (or use theAndroidManifest.xml
...see example), containing the following configuration:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/sdcard/testFile.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
Note: Since the specified path is on SD, make sure to use WRITE_EXTERNAL_STORAGE permission. You can instead specify a different path where you already have write permissions.
Your Java code, which contains the SLF4J logging calls, now logs all events at or above the DEBUG
level to the /sdcard/testFile.log
.
回答2:
Make a folder named "libs" and put the jar inside that folder.
来源:https://stackoverflow.com/questions/10372394/android-best-logger-for-logging-into-file