Поделиться через


Logger Класс

Определение

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

[Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)]
public class Logger : Java.Lang.Object
[<Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)>]
type Logger = class
    inherit Object
Наследование
Logger
Атрибуты

Комментарии

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения. Средства ведения журнала обычно именуются с помощью иерархического пространства имен, разделенного точками. Имена средства ведения журнала могут быть произвольными строками, но обычно они должны быть основаны на имени пакета или имени класса зарегистрированного компонента, например java.net или javax.swing. Кроме того, можно создать анонимные средства ведения журнала, которые не хранятся в пространстве имен средства ведения журнала.

Объекты средства ведения журнала могут быть получены вызовами одного из методов фабрики getLogger. Они создадут новый средство ведения журнала или возвращают подходящий существующий средство ведения журнала. Важно отметить, что средство ведения журнала, возвращаемое одним из getLogger методов фабрики, может собираться мусор в любое время, если надежная ссылка на средство ведения журнала не хранится.

Сообщения журнала перенаправляются в зарегистрированные объекты обработчика, которые могут пересылать сообщения в различные назначения, включая консоли, файлы, журналы ОС и т. д.

Каждый средство ведения журнала отслеживает "родительский" средство ведения журнала, которое является ближайшим существующим предком в пространстве имен средства ведения журнала.

С ним связан каждый средство ведения журнала. Это отражает минимальный уровень, о том, что этот средство ведения журнала заботится. Если задан nullуровень ведения журнала, его действующий уровень наследуется от родительского элемента, который, в свою очередь, может получить его рекурсивно от родительского элемента и т. д.

Уровень журнала можно настроить на основе свойств из файла конфигурации ведения журнала, как описано в описании класса LogManager. Однако он также может быть динамически изменен вызовами метода Logger.setLevel. Если уровень средства ведения журнала изменяется, изменение может также повлиять на дочерние средства ведения журнала, так как любой дочерний средство ведения журнала, имеющий null как его уровень, наследует его действующий уровень от родительского элемента.

При каждом вызове журнала средство ведения журнала изначально выполняет дешевую проверку уровня запроса (например, SEVERE или FINE) на действующий уровень журнала средства ведения журнала. Если уровень запроса ниже уровня журнала, вызов ведения журнала возвращается немедленно.

После прохождения этого начального (дешевого) теста средство ведения журнала выделяет LogRecord для описания сообщения журнала. Затем он вызовет фильтр (если присутствует), чтобы выполнить более подробную проверку того, должна ли запись быть опубликована. Если он передает его, опубликуйте LogRecord в его выходных обработчиках. По умолчанию средства ведения журнала также публикуются в обработчиках родительского объекта, рекурсивно вверх по дереву.

У каждого средства ведения журнала может быть ResourceBundle связана с ним. Его ResourceBundle можно указать по имени, с помощью #getLogger(java.lang.String, java.lang.String) метода фабрики или по значению #setResourceBundle(java.util.ResourceBundle) setResourceBundle — с помощью метода. Этот пакет будет использоваться для локализации сообщений ведения журнала. Если у средства ведения журнала нет собственного ResourceBundle имени или имени пакета ресурсов, он наследует ResourceBundle имя пакета ресурсов от родительского элемента, рекурсивно вверх по дереву.

Большинство методов вывода средства ведения журнала принимают аргумент msg. Этот аргумент msg может быть необработанным или ключом локализации. Во время форматирования, если средство ведения журнала имеет локализацию (или наследует) ResourceBundle и ResourceBundle если имеет сопоставление для строки msg, то строка msg заменяется локализованным значением. В противном случае используется исходная строка msg. Как правило, средства форматирования используют форматирование стиля java.text.MessageFormat для форматирования параметров, поэтому например строка формата "{0}{1}" форматирует два параметра в виде строк.

Вместо аргумента msgSupplier вместо аргумента msgSupplier можно использовать набор методов. Эти методы принимают Supplier<String> функцию, которая вызывается для создания требуемого сообщения журнала только в том случае, если сообщение фактически должно быть зарегистрировано на основе эффективного уровня журнала, что позволяет устранить ненужные конструкции сообщений. Например, если разработчик хочет регистрировать состояние работоспособности системы для диагностики, используя версию string-accepting, код будет выглядеть следующим образом:

<code>

               class DiagnosisMessages {
                 static String systemHealthStatus() {
                   // collect system health information
                   ...
                 }
               }
               ...
               logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
</code>

При использовании приведенного выше кода состояние работоспособности собирается ненужно даже при отключении уровня журнала FINER. При принятии поставщиком версии, как показано ниже, состояние будет собираться только при включении уровня журнала FINER.

<code>

               logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
</code>

При поиске ResourceBundleсредства ведения журнала сначала посмотрит, был ли указан пакет с помощью #setResourceBundle(java.util.ResourceBundle) setResourceBundle, а затем только имя пакета ресурсов было указано с помощью метода фабрики #getLogger(java.lang.String, java.lang.String) getLogger . Если имя пакета ресурсов не ResourceBundle найдено, оно будет использовать ближайшее ResourceBundle или унаследованное от родительского дерева имя пакета ресурсов.<br> При ResourceBundle наследовавшемся или указанном методе #setResourceBundle(java.util.ResourceBundle) setResourceBundle будет ResourceBundle использоваться. В противном случае, если средство ведения журнала имеет или наследует имя пакета ресурсов, то имя пакета ресурсов будет сопоставлено с ResourceBundle объектом, используя языковой стандарт по умолчанию во время ведения журнала. <br id="ResourceBundleMapping">При сопоставлении имен пакетов ресурсов с ResourceBundle объектами средство ведения журнала сначала попытается использовать загрузчик контекстного класса Thread.lang.Thread#getContextClassLoader() для сопоставления заданного имени пакета ресурсов с ResourceBundleименем пакета ресурсов. Если загрузчик nullкласса контекста потока, он попытается использовать загрузчик системного класса java.lang.ClassLoader#getSystemClassLoader(). Если он ResourceBundle по-прежнему не найден, он будет использовать загрузчик класса первого вызывающего #getLogger(java.lang.String, java.lang.String) getLogger метода фабрики.

Форматирование (включая локализацию) отвечает обработчику выходных данных, который обычно вызывает метод Formatter.

Обратите внимание, что форматирование не требуется синхронно. Оно может быть отложено до фактического записи LogRecord во внешний приемник.

Методы ведения журнала группируются в пять основных категорий: <ul><li>

Существует набор методов "log", которые принимают уровень журнала, строку сообщения и при необходимости некоторые параметры в строку сообщения. <Литий>

Существует набор методов logp (для "точных журналов"), которые похожи на методы log, но также принимают явное имя и имя метода исходного класса. <Литий>

Существует набор метода logrb (для журнала с пакетом ресурсов), который похож на метод logp, но также принимает явный объект пакета ресурсов для использования при локализации сообщения журнала. <Литий>

Существуют удобные методы для записи методов трассировки (методы ввода), возвращает метод (методы выхода) и создает исключения (методы создания). <Литий>

Наконец, есть набор удобных методов для использования в самых простых случаях, когда разработчик просто хочет записать простую строку на определенном уровне журнала. Эти методы называются именами стандартных уровней ("тяжелые", "предупреждения", "info", т. д.) и принимают один аргумент, строку сообщения. </ul>

Для методов, которые не принимают явное имя источника и имя метода, платформа ведения журнала сделает "лучшие усилия", чтобы определить, какой класс и метод вызывается в метод ведения журнала. Однако важно понимать, что эта автоматически выводимая информация может быть приблизительной (или даже может быть совершенно неправильной!). Виртуальные машины могут выполнять обширную оптимизацию, когда JITing и может полностью удалить кадры стека, что позволяет надежно находить вызывающий класс и метод.

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

<b>Подклассинг Information:</b> Обратите внимание, что класс LogManager может предоставлять собственную реализацию именованных ведения журнала для любой точки в пространстве имен. Таким образом, любые подклассы Loger (если они не реализованы вместе с новым классом LogManager) должны заботиться о получении экземпляра Loger из класса LogManager и должны делегировать такие операции, как isLoggable и Log(LogRecord). Обратите внимание, что для перехвата всех выходных данных ведения журнала подклассы нуждаются только в переопределении метода log(LogRecord). Все остальные методы ведения журнала реализуются как вызовы этого метода log(LogRecord).

Добавлено в версии 1.4.

Документация по Java для java.util.logging.Logger.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

Logger(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Logger(String, String)

Защищенный метод для создания средства ведения журнала для именованной подсистемы.

Поля

GlobalLoggerName

GLOBAL_LOGGER_NAME — это имя глобального средства ведения журнала.

Свойства

AnonymousLogger

Создание анонимного средства ведения журнала.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Filter

Получите текущий фильтр для этого средства ведения журнала. -или- Задайте фильтр для управления выходными данными этого средства ведения журнала.

Global

Возвращает объект глобального средства ведения журнала с именем Logger.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
JniPeerMembers

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

Level

Получите уровень журнала, указанный для этого средства ведения журнала. -или- Задайте уровень журнала, указывающий, какие уровни сообщений будут регистрироваться этим средством ведения журнала.

Name

Получите имя этого средства ведения журнала.

Parent

Верните родительский объект для этого средства ведения журнала. -или- Задайте родительский объект для этого средства ведения журнала.

PeerReference

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
ResourceBundle

Получите пакет ресурсов локализации для этого средства ведения журнала. -или- Задает пакет ресурсов для этого средства ведения журнала.

ResourceBundleName

Получите имя пакета ресурсов локализации для этого средства ведения журнала.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

UseParentHandlers

Узнайте, отправляет ли этот средство ведения журнала выходные данные в родительский средство ведения журнала. -или- Укажите, должен ли этот средство ведения журнала отправлять выходные данные в родительский средство ведения журнала.

Методы

AddHandler(Handler)

Добавьте обработчик журнала для получения сообщений журнала.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Config(ISupplier)

Зайдите в журнал сообщение CONFIG, которое должно быть создано только в том случае, если уровень ведения журнала таким образом, что сообщение будет зарегистрировано.

Config(String)

Зайдите в журнал сообщения CONFIG.

Dispose()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
Dispose(Boolean)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
Entering(String, String)

Зайдите в журнал записи метода.

Entering(String, String, Object)

Зайдите в журнал записи метода с одним параметром.

Entering(String, String, Object[])

Зайдите в журнал записи метода с массивом параметров.

Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
Exiting(String, String)

Зайдите в журнал возвращаемого метода.

Exiting(String, String, Object)

Зайдите в журнал возвращаемого метода с результирующий объект.

Fine(ISupplier)

Зарегистрироваться сообщение FINE, которое должно быть создано только в том случае, если уровень ведения журнала таким образом, что сообщение будет зарегистрировано.

Fine(String)

Зайдите в журнал сообщения FINE.

Finer(ISupplier)

Зарегистрироваться сообщение FINER, которое должно быть создано только в том случае, если уровень ведения журнала такой, что сообщение будет зарегистрировано.

Finer(String)

Зайдите в журнал сообщения FINER.

Finest(ISupplier)

Зайдите в журнал сообщение FINEST, которое должно быть создано только в том случае, если уровень ведения журнала на самом деле будет зарегистрирован.

Finest(String)

Зайдите в журнал сообщения FINEST.

GetAnonymousLogger(String)

Создание анонимного средства ведения журнала.

GetHandlers()

Получите обработчики, связанные с этим средство ведения журнала.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetLogger(String)

Найдите или создайте средство ведения журнала для именованной подсистемы.

GetLogger(String, String)

Найдите или создайте средство ведения журнала для именованной подсистемы.

Info(ISupplier)

Зарегистрироваться сообщение INFO, которое должно быть создано только в том случае, если уровень ведения журнала на самом деле будет зарегистрирован.

Info(String)

Зайдите в журнал сообщения INFO.

IsLoggable(Level)

Проверьте, будет ли сообщение заданного уровня регистрироваться этим средством ведения журнала.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Log(Level, ISupplier)

Зайдите в журнал сообщения, которое нужно создать только в том случае, если уровень ведения журнала должен быть зарегистрирован.

Log(Level, String)

Зайдите в журнал сообщения без аргументов.

Log(Level, String, Object)

Зайдите в журнал сообщения с одним параметром объекта.

Log(Level, String, Object[])

Зайдите в журнал сообщения с массивом аргументов объекта.

Log(Level, String, Throwable)

Зайдите в журнал сообщения со связанными сведениями о бросаемом объекте.

Log(Level, Throwable, ISupplier)

Зайдите в журнал лениво созданное сообщение со связанными сведениями о бросаемом объекте.

Log(LogRecord)

Зайдите в журнал LogRecord.

Logp(Level, String, String, ISupplier)

Регистрируйте неявное созданное сообщение, указывая исходный класс и метод без аргументов.

Logp(Level, String, String, String)

Зайдите в журнал сообщения, указав исходный класс и метод без аргументов.

Logp(Level, String, String, String, Object)

Зайдите в журнал сообщения, указав исходный класс и метод с одним параметром объекта в сообщение журнала.

Logp(Level, String, String, String, Object[])

Зайдите в журнал сообщения, указав исходный класс и метод с массивом аргументов объекта.

Logp(Level, String, String, String, Throwable)

Зайдите в журнал сообщения, указав исходный класс и метод, со связанными сведениями о бросаемом объекте.

Logp(Level, String, String, Throwable, ISupplier)

Регистрируйте неявное созданное сообщение, указывающее исходный класс и метод, с соответствующими сведениями о бросаемом объекте.

Logrb(Level, String, String, ResourceBundle, String, Object[])

Регистрируйте сообщение, указывая исходный класс, метод и имя пакета ресурсов без аргументов.

Logrb(Level, String, String, ResourceBundle, String, Throwable)

Зайдите в журнал сообщения, указав исходный класс, метод и пакет ресурсов, со связанными сведениями о бросаемом объекте.

Logrb(Level, String, String, String, String)

Регистрируйте сообщение, указывая исходный класс, метод и имя пакета ресурсов без аргументов.

Logrb(Level, String, String, String, String, Object)

Регистрируйте сообщение, указывая исходный класс, метод и имя пакета ресурсов с одним параметром объекта в сообщение журнала.

Logrb(Level, String, String, String, String, Object[])

Зайдите в журнал сообщения, указав исходный класс, метод и имя пакета ресурсов с массивом аргументов объекта.

Logrb(Level, String, String, String, String, Throwable)

Зайдите в журнал сообщения, указав исходный класс, метод и имя пакета ресурсов, со связанными сведениями о бросаемом объекте.

Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
RemoveHandler(Handler)

Удалите обработчик журнала.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Severe(ISupplier)

Зарегистрироваться в журнале сообщения SEVERE, которое должно быть создано только в том случае, если уровень ведения журнала на самом деле будет зарегистрирован.

Severe(String)

Зайдите в журнал сообщения SEVERE.

Throwing(String, String, Throwable)

Журнал, вызывающий исключение.

ToArray<T>()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Warning(ISupplier)

Зайдите в журнал сообщение WARNING, которое должно быть создано только в том случае, если уровень ведения журнала таким образом, что сообщение будет зарегистрировано.

Warning(String)

Зайдите в журнал сообщения WARNING.

Явные реализации интерфейса

IJavaPeerable.Disposed()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

GetJniTypeName(IJavaPeerable)

Объект Loger используется для регистрации сообщений для определенного компонента системы или приложения.

Применяется к