アンドリュースは、ログファイルの管理を書き込み

プロジェクトの開発では、多くの場合、あなたはデバッグログによる難しい調査する必要があります。ログは、永続的なオンラインアプリケーション開発本当に必要です。Androidのログクラス自体は、コンソールにログ出力され、出力をファイルにすることはできません。この記事では、ロジックのシンプルで実用的なLogUtils使用量と実装は、ログログに書き込むことができますについて説明し、あなたの参照を与えます。ここ出典:ログ・ツー・ファイル
次のようにアプリケーションのonCreateに追加するクラスの初期化コードのニーズを使用LogUtils。

private void initLog() {
    LogUtils.setLogDir(YiqiConfig.getLogFolderPath());
    if (EnvironmentUtils.getVersionName().toLowerCase().contains("beta")) {
        LogUtils.setLogLevel(LogUtils.LogLevel.DEBUG);
    } else {
        // 为了保护隐私和保证log的整洁,正式版上只打比warn高的log,即warn, error和assert
        LogUtils.setLogLevel(LogUtils.LogLevel.WARN);
    }
}

使用方法とandroid.utils.Log同じメソッド名とパラメータは1つので対応しています。増加した機能がコンソールに出力した後に、ですが、また、ログファイルに出力し、ログファイル管理の数。個々のログファイルの数とサイズは、ログファイルがコードで提供されています。

private static final int LOG_FILES_MAX_NUM = 5; //文件最多有5个
private static final int LOG_FILE_MAX_SIZE = 1024 * 1024; //文件最大1MB

ファイルで満たされた場合、新しいログファイルを作成するファイル数が最大数を超えた場合は、最も古いログファイルを削除します。
次の方法の主なロジック:

private File getNewLogFile() {
    File dir = new File(mLogFileDir);
    File[] files = dir.listFiles(fileFilter);
    if (files == null || files.length == 0) {
        // 创建新文件
        return createNewLogFile();
    }
    List<File> sortedFiles = sortFiles(files);
    if (files.length > LOG_FILES_MAX_NUM) {
        // 删掉最老的文件
        FileUtils.delete(sortedFiles.get(0));
    }
    // 取最新的文件,看写没写满
    File lastLogFile = sortedFiles.get(sortedFiles.size() - 1);
    if (lastLogFile.length() < LOG_FILE_MAX_SIZE) {
        return lastLogFile;
    } else {
        // 创建新文件
        return createNewLogFile();
    }
}

ログファイルがすでに存在する場合は、ログファイルの現在の数が最大数を超えているかどうかを決定し、超えた場合、最も古いログファイルを削除します;まず、それが直接、新しいログファイルを作成している場合、すべてのログファイルが存在しないかどうかを判断し、最終的に判断最新のファイルがいっぱいの場合、直接満たされた、文書に書かれて充填されていない、あなたは新しいファイルを作成します。



著者:InnerNight
リンクします。https://www.jianshu.com/p/548c7b18397e
出典:ジェーン・ブック
著者によって予約ジェーンブックの著作権は、いかなる形で再現され、承認を得るために、作者に連絡して、ソースを明記してください。

公開された442元の記事 ウォン称賛77 ビュー100万+

おすすめ

転載: blog.csdn.net/rnZuoZuo/article/details/95738679