XLogとは何ですか
構成の依存関係
ここではバージョン1.2.4の代わりに1.2.3を使用していますが、一般的には大きな違いはありません。
implementation 'com..mars:mars-xlog:1.2.3'
アクセス許可
書き込みパーミッションが必要で、次のように AndroidManifest に追加できます。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
soファイルの読み込み
初期化コードに以下を必ず追加してください。
System.loadLibrary("stlport_shared");
System.loadLibrary("marsxlog");
couldn't find "libstlport_shared.so"
ここではヒントですが、エラーが発生した場合、それはxlogの2つのようにパッケージがarm64 - v8aおよびarmeabi - v7aに格納されているため、x86およびその他の互換性の問題のシミュレータの一部である可能性があり、それがエラーとして報告され、エラーにつながる、一般的にgradleのアンドロイドでは、次のコードを追加する下で解決することができますが、実機のデバッグを使用して解決することはできません。
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
初期化
System.loadLibrary(xxx)
初期化は、2つのsoファイルをロードするために必要であり、incomingパラメータのLEVELは、ログが異なるログ情報を出力できるように、それぞれDEBUGまたはALLなどに設定することができます。
//1.2.3
System.loadLibrary("c++_shared")
System.loadLibrary("marsxlog")
val SDCARD =
getExternalFilesDir("XLogF").toString()
val logPath = SDCARD+"/Xlog"
// this is necessary, or may crash for SIGBUS
val cachePath = this.getCacheDir().toString() + "/xlog"
if (BuildConfig.DEBUG) {
Xlog.appenderOpen(Xlog.LEVEL_DEBUG, Xlog.AppednerModeAsync, cachePath, logPath, "MarsSample", 0, "");
Xlog.setConsoleLogOpen(true);
} else {
Xlog.appenderOpen(Xlog.LEVEL_INFO, Xlog.AppednerModeAsync, cachePath, logPath, "MarsSample", 0, "");
Xlog.setConsoleLogOpen(false);
}
Log.setLogImp(Xlog())
閉じるXLog
XLogの使用はOpenに加えて、もちろん、あなたも閉じる必要があり、これらの2つは、XLogが閉じられたときに、対応するログファイルが生成され、それのどの部分を欠くことはできません。ログの書き込みの最後に次の文を追加します。
com..mars.xlog.Log.appenderClose()
現時点では、対応するパスの下に対応するxlogログファイルを見つけることができますが、現在のログファイルを直接開くことはできません、あなたはそれを生成するためにデコードするために対応するプログラムを使用する必要があります。
ログ生成
decode_mars_nocrypt_log_file.py
この時点で、xlogをローカルにプルし、火星のソースコードからlog/crypt/の下にあるファイルを取得し、それと同じフォルダにxlogを置き、Pythonバージョン2.7.xで、対応するディレクトリにcmdで移動し、ログファイルを生成するために以下のステートメントを実行します。
Python decode_mars_nocrypt_log_file.py .xlog
実行するとログファイルが生成され、メモ帳などで開いて見ることができます。ここで注意しなければならないのは、XLogはMarsコンポーネントにのみログを記録し、システムユーティリティにはログを記録しないので、ログにログを書き込む必要がある場合は、どのライブラリのどのコンポーネントにログを記録するかに注意してください!
要約
また、プロジェクトでは、このコンポーネントにアクセスするためにかなり長い時間がかかり、全体的なアクセスは、より深い理解のコンポーネントと操作は、それを踏んだピットを記録する記事を書くだけでなく、このように問題を解決するために、料理はまだ非常に皿であり、応援し続けます!