私はAndroid開発に不慣れです。SDカードの1つのファイルにログを書き込みたいです。Log4jを使用してこれを行うにはどうすればよいですか。Log4jを実装するためのすべての手順は何ですか。多くのatriclesを読みました。誰かがAndroidでこれを行う方法を簡単な言葉で説明できますか?
質問する
10647 次
1 に答える
11
logback
(次世代のlog4j)を見るべきです。FileAppender
またはを使用しRollingFileAppender
ます。
指示:
クラスパスに と を追加し
slf4j-api-1.6.6.jar
ます。logback-android-1.0.6-2.jar
次の構成を含むファイルをプロジェクトに作成します
assets/logback.xml
(またはAndroidManifest.xml
...see exampleを使用します)。
<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>
注: 指定されたパスは SD 上にあるため、必ずWRITE_EXTERNAL_STORAGE
許可を使用してください。代わりに、既に書き込み権限を持っている別のパスを指定できます。
SLF4J ログ呼び出しを含む Java コードは、DEBUG
レベル以上のすべてのイベントを/sdcard/testFile.log
.
Java の例:
package com.example;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.example.R;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroidActivity extends Activity {
static private final Logger LOG =
LoggerFactory.getLogger(HelloAndroidActivity.class);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
// Based on the configuration above, these log statements
// are written to /sdcard/testFile.log
//
LOG.info("Hello Android!");
LOG.debug("reply: {}", Example.hello());
}
}
class Example {
static private final Logger LOG =
LoggerFactory.getLogger(Example.class);
static public String hello() {
LOG.trace("entered hello()");
return "Hi there!";
}
}
于 2012-08-12T23:15:07.740 に答える