Logger Класс

Определение

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

[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
Атрибуты

Комментарии

Объект Logger используется для ведения журнала сообщений для определенной системы или компонента приложения. Средства ведения журнала обычно называются с использованием иерархического пространства имен с разделителями точками. Имена средств ведения журнала могут быть произвольными строками, но обычно они должны основываться на имени пакета или имени класса зарегистрированного компонента, например 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" вместо аргумента "msg". Эти методы принимают Supplier<String> функцию, которая вызывается для создания требуемого сообщения журнала только в том случае, если сообщение фактически должно быть зарегистрировано на основе эффективного уровня журнала, что устраняет ненужные конструкции сообщений. Например, если разработчик хочет записать состояние работоспособности системы для диагностики с версией, принимающей строку, код будет выглядеть следующим образом:

<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 java.lang.Thread#getContextClassLoader() для сопоставления заданного имени пакета ресурсов с ResourceBundle. Если загрузчиком класса контекста потока является null, он будет использовать загрузчик системного класса java.lang.ClassLoader#getSystemClassLoader(). Если объект по-прежнему ResourceBundle не найден, он будет использовать загрузчик класса первого вызывающего #getLogger(java.lang.String, java.lang.String) getLogger объекта фабричного метода.

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

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

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

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

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

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

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

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

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

Все методы в средстве ведения журнала являются многопотоковными.

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

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

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

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

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

Logger(IntPtr, JniHandleOwnership)

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

Logger(String, String)

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

Поля

GlobalLoggerName

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

Свойства

AnonymousLogger

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

Class

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

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

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

Global

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

Handle

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

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

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

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

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

Level

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

Name

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

Parent

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

PeerReference

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

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

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

ResourceBundleName

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

ThresholdClass

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

ThresholdType

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

UseParentHandlers

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

Методы

AddHandler(Handler)

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

Clone()

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

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

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

Config(String)

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

Dispose()

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

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

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

(Унаследовано от 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)

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

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

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

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)

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

Notify()

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

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

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

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

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

SetHandle(IntPtr, JniHandleOwnership)

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

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

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

Severe(String)

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

Throwing(String, String, Throwable)

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

ToArray<T>()

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

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

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

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

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

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

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

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

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

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

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

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

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

Warning(String)

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

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

IJavaPeerable.Disposed()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

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