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

OSCHINA-MIRROR/XShawnNotes-XLog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Разветвление

Все пакеты aar версии V2.X основаны на ветке xlog2, остальные ветки были заброшены!

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

  1. Инициализация logcat (необязательно)
XLog.logcatConfig()
.setEnable(enable)          // разрешить печать logcat
.setTag("XShawn")           // использовать пользовательский тег
.setLevel(XLog.DEBUG)       // уровень logcat вывода, логи ниже этого уровня не будут выводиться
.setBorderEnable(true);     // показать границы в logcat;
  1. Инициализация логфайла

Инициализация логфайла в основном предназначена для настройки параметров, таких как механизм вывода, имя файла, путь к файлу и т. д.

XLog.logfileConfig()
    .setEnable(true)            // разрешить вывод в файл
    .setLevel(XLog.DEBUG)        // уровень вывода, логи ниже этого уровня не выводятся
    .setStackTraceEnable(true)   // вывести информацию о вызывающем абоненте
    .setLogfileName(fileName)    // имя файла
    .setLogfileDir(fileDir)      // путь к файлу
    .setEngine(new LogfileEngineImpl(context)); // механизм вывода

// 3. Печать журнала
// 3.1 Печать форматированной информации
XLog.d("Запуск NFC-интерфейса для чтения данных, текущий процесс: %s", "main");
// 3.2 Печать различных объектов
XLog.d(intent);
XLog.e(new String[]{"1", "2", 3"})

Пример вывода Logcat

С границами (по умолчанию отключено)

E/XLog: ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
E/XLog: ┃ MainActivity2.onCreate(MainActivity2.kt:40)
E/XLog: ┣━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━
E/XLog: ┃ android.content.Intent{
E/XLog: ┃     Action = Action
E/XLog: ┃     DataString = asdasdasd
E/XLog: ┃     Type = uri
E/XLog: ┃     ComponentInfo = {x.shawn.core.test/x.shawn.core.test.MainActivity2}
E/XLog: ┃     Identifier = Identifier
E/XLog: ┃     Flags = (1081344)|FLAG_ACTIVITY_CLEAR_TASK|FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
E/XLog: ┃     Extras = android.os.Bundle(4){
E/XLog: ┃         age = 30
E/XLog: ┃         data = [1, 2, 3, 4]
E/XLog: ┃         name = XShawn
E/XLog: ┃         message = android.os.Message{
E/XLog: ┃             what = 100
E/XLog: ┃             when = 1668482191081
E/XLog: ┃             arg1 = 111
E/XLog: ┃             arg2 = 222
E/XLog: ┃             obj = java.lang.ref.SoftReference<x.shawn.core.test.ABC{
E/XLog: ┃                 abc = abcabc
E/XLog: ┃                 inner = x.shawn.core.test.ABC$Inner{
E/XLog: ┃                     a = x.shawn.core.test.A{
E/XLog: ┃                         a = aaa
E/XLog: ┃                         map = {k1={}, k2=22222, k3=v3}    // превышен предел рекурсии, напрямую toString
E/XLog: ┃                         set = []
E/XLog: ┃                     }
E/XLog: ┃                     ab = x.shawn.core.test.AB{
E/XLog: ┃                         ab = ababab
E/XLog: ┃                     }
E/XLog: ┃                     iabc = iabc
E/XLog: ┃                 }
E/XLog: ┃             }>
E/XLog: ┃             data = android.os.Bundle(0){}
E/XLog: ┃             target = Handler (android.os.Handler) {54ad477}
E/XLog: ┃             isAsynchronous = false
E/XLog: ┃         }
E/XLog: ┃     }
E/XLog: ┃ }
E/XLog: ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Пример вывода логфайла

Информация о вызывающем объекте (по умолчанию отключена, то есть часть [MainActivity2.onCreate(MainActivity2.kt:40)] ниже)

[2022.11.15 11:15:19:584][main][E:XLog][MainActivity2.onCreate(MainActivity2.kt:40)] android.content.Intent{
    Action = Action
    DataString = asdasdasd
    Type = uri
    ComponentInfo = {x.shawn.core.test/x.shawn.core.test.MainActivity2}
    Identifier = Identifier
    Flags = (1081344)|FLAG_ACTIVITY_CLEAR_TASK|FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
    Extras = android.os.Bundle(4){
        age = 30
        data = [1, 2, 3, 4]
        name = XShawn
        message = android.os.Message{
            what = 100
            when = 1668482119466
            arg1 = 111
            arg2 = 222
            obj = java.lang.ref.SoftReference<x.shawn.core.test.ABC{
                abc = abcabc
                inner = x.shawn.core.test.ABC$Inner{
                    a = x.shawn.core.test.A{
                        a = aaa
                        map = {k1={}, k2=22222, k3=v3}
                        set = []
                    }
                    ab = x.shawn.core.test.AB{
                        ab = ababab
                    }
                    iabc = iabc
                }
            }>
            data = android.os.Bundle(0){}
            target = Handler (android.os.Handler) {c8e4113}
            isAsynchronous = false
        }
    }
}

Вторичная упаковка

Если вам нужно часто переключаться между инструментами ведения журналов или вам нужно уменьшить... XLog и его связь с другим кодом: рекомендуется ещё одна упаковка

При упаковке рекомендуется изменить смещение метода, чтобы избежать ошибки вывода информации StackTrace:

XLog.logcatConfig()
    .setEnable(enable)
    .setMethodOffset(1)     // для корректного отображения имени метода
    .setBorderEnable(false);

Благодарности

Эта библиотека основана на следующих открытых проектах:

Выражаем благодарность Pengwei1024!

Лицензия

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Публичный аккаунт статьи

Платформа Адрес
语雀 www.yuque.com/xshawn
微信公号

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/XShawnNotes-XLog.git
git@api.gitlife.ru:oschina-mirror/XShawnNotes-XLog.git
oschina-mirror
XShawnNotes-XLog
XShawnNotes-XLog
xlog2