1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-xLog

Клонировать/Скачать
README.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 07:52 fbbbb51

Простой, красивый, мощный и расширяемый openHormony и Java-логгер, который может одновременно печатать логи в нескольких каналах, таких как hilog, консоль и файл. При желании можно даже печатать на удалённый сервер (или любое другое место).

Как запустить проект:

  1. Удалите тег «visible»: false из файла config.json.
  2. Добавьте ohos.jar в папку library/lib. Вы можете получить путь к файлу ohos.jar из External Libraries в SDK-файле DevEco studio.
  3. Для запуска проекта используйте DevEco studio и загрузите openHormonySDK. В файле build.gradle проекта измените версию classpath на соответствующую версию (то есть версию, которую вы используете в новом проекте IDE).

Использование:

allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:XLog:1.0.1'

Что умеет XLog:

  • Глобальная конфигурация (TAG, различные форматеры и т. д.) или конфигурация на основе отдельной записи журнала.
  • Поддержка печати любых объектов и настраиваемых форматеров объектов.
  • Поддержка печати массивов.
  • Поддержка неограниченной длины журналов (без ограничения в 4K символов).
  • Форматирование вывода XML и JSON.
  • Информация о потоке (имя потока и т. д., настраиваемая).
  • Информация о стеке вызовов (настраиваемая глубина стека вызовов, включая имя класса, имя метода, имя файла и номер строки).
  • Поддержка лог-перехватчиков.
  • Сохранение файлов журналов (настраиваемые имена файлов и стратегии автоматического резервного копирования).
  • Красивый вид журналов в Dev Studio.
  • Простота использования и высокая расширяемость.

Отличия от других логгеров:

  • Элегантный исходный код и хорошая документация.
  • Высокая расширяемость, легко расширять и усиливать функции.
  • Лёгкий вес, отсутствие зависимостей.

Использование

Инициализация

Простой способ

XLog.init(LogLevel.ALL);

Или если вы хотите запретить ведение журнала в официальной версии:

XLog.init(BuildConfig.DEBUG ? LogLevel.ALL : LogLevel.NONE);

Расширенный способ

LogConfiguration config = new LogConfiguration.Builder()
    .logLevel(BuildConfig.DEBUG ? LogLevel.ALL             // Уровень журнала ниже этого уровня не будет печататься, по умолчанию LogLevel.ALL
        : LogLevel.NONE)
    .tag("MY_TAG")                                         // По умолчанию "X-LOG"
    .enableThreadInfo()                                    // Разрешить печать информации о потоках, по умолчанию запрещено
    .enableStackTrace(2)                                   // Разрешить печать стека вызовов глубиной 2, по умолчанию запрещено
    .enableBorder()                                        // Разрешить печать границ журнала, по умолчанию запрещено
    .jsonFormatter(new MyJsonFormatter())                  // Настроить форматтер JSON, по умолчанию DefaultJsonFormatter
    .xmlFormatter(new MyXmlFormatter())                    // Настроить XML-форматтер, по умолчанию используется DefaultXmlFormatter
    .throwableFormatter(new MyThrowableFormatter())        // Настроить форматер исключений, по умолчанию используется DefaultThrowableFormatter
    .threadFormatter(new MyThreadFormatter())              // Настроить форматировщик информации о потоке, по умолчанию используется DefaultThreadFormatter
    .stackTraceFormatter(new MyStackTraceFormatter())      // Настроить форматер стека вызовов, по умолчанию используется DefaultStackTraceFormatter
    .borderFormatter(new MyBoardFormatter())               // Настроить формирователь границ, по умолчанию используется DefaultBorderFormatter
    .addObjectFormatter(AnyClass.class,                    // Добавить форматер для указанного класса
        new AnyClassObjectFormatter())                     // По умолчанию использовать Object.toString()
    .addInterceptor(new BlacklistTagsFilterInterceptor(    // Добавить фильтр чёрного списка перехватчиков
        "blacklist1", "blacklist2", "blacklist3"))
    .addInterceptor(new MyInterceptor())                   // Добавить лог-перехватчик
    .build();

Printer ohosPrinter = new OhosPrinter();             // Использовать openHormonyHilog для печати журналов
Printer consolePrinter = new ConsolePrinter();             // Печатать журналы в консоли через System.out
Printer filePrinter = new FilePrinter                      // Печатать журналы в файл
    .Builder("/sdcard/xlog/")                              // Установить путь сохранения файла журнала
    .fileNameGenerator(new DateFileNameGenerator())        // Установить генератор имени файла журнала, по умолчанию ChangelessFileNameGenerator("log")
    .backupStrategy(new NeverBackupStrategy()              // Установить стратегию резервного копирования файла журнала, по умолчанию FileSizeBackupStrategy(1024 * 1024)
    .cleanStrategy(new FileLastModifiedCleanStrategy(MAX_TIME))     // Установить стратегию очистки файла журнала, по умолчанию NeverCleanStrategy()
    .flattener(new MyFlattener())                          // Установить выравниватель журнала, по умолчанию используется DefaultFlattener
    .build();

XLog.init(                                                 // Инициализировать XLog
    config,                                                // Настроить конфигурацию журнала, если не настроено, будет использоваться new LogConfiguration.Builder().build() по умолчанию
    ohosPrinter,                                        // Добавить несколько принтеров. Если принтер не добавлен, по умолчанию будет использоваться OhosPrinter (Android)/ConsolePrinter (Java)
    consolePrinter,
    filePrinter);

Глобальное использование

XLog.d("Simple message")
XLog.d("My name is %s", "Elvis");
XLog.d("An exception caught", exception);
XLog.d(object);
XLog.d(array);
XLog.json(unformattedJsonString);
XLog.xml(unformattedXmlString);
... // Другие глобальные методы

Локальное использование

Создайте [Logger].

Logger partial = XLog.tag("PARTIAL-LOG")
    ... // Другая конфигурация
    .build();

Затем используйте этот [Logger] для локального диапазона, все методы печати журналов такие же, как и в классе [XLog].

partial.d("Simple message 1");
partial.d("Simple message 2");
... // Другое локальное использование

Использование на основе одной записи журнала

Проведите настройку на основе одной записи журнала, после чего вы сможете напрямую печатать журналы, и все связанные с печатью журналов методы будут такими же, как в классе [XLog].

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-xLog.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-xLog.git
oschina-mirror
HarmonyOS-tpc-xLog
HarmonyOS-tpc-xLog
master