Compartir a través de


Logger Clase

Definición

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

[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
Herencia
Logger
Atributos

Comentarios

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación. Normalmente, los registradores se denominan mediante un espacio de nombres separados por puntos jerárquicos. Los nombres del registrador pueden ser cadenas arbitrarias, pero normalmente deben basarse en el nombre del paquete o el nombre de clase del componente registrado, como java.net o javax.swing. Además, es posible crear registradores "anónimos" que no se almacenan en el espacio de nombres Del registrador.

Los objetos de registrador se pueden obtener mediante llamadas en uno de los métodos de fábrica getLogger. Estos crearán un nuevo registrador o devolverán un registrador existente adecuado. Es importante tener en cuenta que el registrador devuelto por uno de los getLogger métodos de fábrica puede ser recolector de elementos no utilizados en cualquier momento si no se mantiene una referencia fuerte al registrador.

Los mensajes de registro se reenviarán a los objetos handler registrados, que pueden reenviar los mensajes a una variedad de destinos, como consolas, archivos, registros del sistema operativo, etc.

Cada registrador realiza un seguimiento de un registrador "primario", que es su antecesor existente más cercano en el espacio de nombres logger.

Cada registrador tiene un "Nivel" asociado. Esto refleja un nivel mínimo que le importa a este registrador. Si el nivel de un registrador se establece nullen , su nivel efectivo se hereda de su elemento primario, que puede obtenerlo recursivamente de su elemento primario, etc.

El nivel de registro se puede configurar en función de las propiedades del archivo de configuración de registro, como se describe en la descripción de la clase LogManager. Sin embargo, también se puede cambiar dinámicamente mediante llamadas en el método Logger.setLevel. Si se cambia el nivel de un registrador, el cambio también puede afectar a los registradores secundarios, ya que cualquier registrador secundario que tenga null como nivel heredará su nivel efectivo de su elemento primario.

En cada llamada de registro, el registrador realiza inicialmente una comprobación barata del nivel de solicitud (por ejemplo, GRAVE o FINE) en el nivel de registro efectivo del registrador. Si el nivel de solicitud es inferior al nivel de registro, la llamada de registro devuelve inmediatamente.

Después de pasar esta prueba inicial (barata), el registrador asignará un logRecord para describir el mensaje de registro. A continuación, llamará a un filtro (si está presente) para realizar una comprobación más detallada sobre si se debe publicar el registro. Si eso pasa, publicará LogRecord en sus controladores de salida. De forma predeterminada, los registradores también publican en los controladores de sus elementos primarios, de forma recursiva en el árbol.

Cada registrador puede tener un ResourceBundle asociado. ResourceBundle puede especificarse por nombre, mediante el #getLogger(java.lang.String, java.lang.String) método factory o por valor , mediante el #setResourceBundle(java.util.ResourceBundle) setResourceBundle método . Esta agrupación se usará para localizar los mensajes de registro. Si un registrador no tiene su propio ResourceBundle nombre de agrupación de recursos o , heredará el nombre del ResourceBundle lote de recursos o de su elemento primario, de forma recursiva hacia arriba el árbol.

La mayoría de los métodos de salida del registrador toman un argumento "msg". Este argumento msg puede ser un valor sin procesar o una clave de localización. Durante el formato, si el registrador tiene (o hereda) una localización ResourceBundle y si ResourceBundle tiene una asignación para la cadena msg, la cadena msg se reemplaza por el valor localizado. De lo contrario, se usa la cadena msg original. Normalmente, los formateadores usan el formato de estilo java.text.MessageFormat para dar formato a los parámetros, por lo que, por ejemplo, una cadena de formato "{0}{1}" da formato a dos parámetros como cadenas.

Un conjunto de métodos, como alternativa, toma un "msgSupplier" en lugar de un argumento "msg". Estos métodos toman una Supplier<String> función que se invoca para construir el mensaje de registro deseado solo cuando el mensaje realmente se va a registrar en función del nivel de registro efectivo, lo que elimina la construcción de mensajes innecesaria. Por ejemplo, si el desarrollador quiere registrar el estado de mantenimiento del sistema para el diagnóstico, con la versión de aceptación de cadenas, el código tendría el siguiente aspecto:

<code>

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

Con el código anterior, el estado de mantenimiento se recopila innecesariamente incluso cuando el nivel de registro FINER está deshabilitado. Con la versión de aceptación del proveedor como se indica a continuación, el estado solo se recopilará cuando el nivel de registro FINER esté habilitado.

<code>

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

Al buscar un ResourceBundle, el registrador primero examinará si se especificó una agrupación mediante #setResourceBundle(java.util.ResourceBundle) setResourceBundley, a continuación, solo si se especificó un nombre de lote de recursos a través del #getLogger(java.lang.String, java.lang.String) getLogger método factory. Si no se encuentra ningún ResourceBundle nombre de agrupación de recursos o no, usará el nombre del lote de recursos más ResourceBundle cercano heredado de su árbol primario.<br> Cuando se heredó o especificó a ResourceBundle través del #setResourceBundle(java.util.ResourceBundle) setResourceBundle método , se usará.ResourceBundle De lo contrario, si el registrador solo tiene o heredó un nombre de lote de recursos, ese nombre de lote de recursos se asignará a un ResourceBundle objeto, mediante la configuración regional predeterminada en el momento del registro. <br id="ResourceBundleMapping">When mapping resource bundle names to ResourceBundle objects, the logger will first try to use the Thread's java.lang.Thread#getContextClassLoader() context class loader() para asignar el nombre de lote de recursos especificado a .ResourceBundle Si el cargador de clases de contexto de subproceso es null, probará en su lugar el cargador de clases del sistema java.lang.ClassLoader#getSystemClassLoader(). ResourceBundle Si todavía no se encuentra, usará el cargador de clases del primer autor de llamada del #getLogger(java.lang.String, java.lang.String) getLogger método factory.

El formato (incluida la localización) es responsabilidad del controlador de salida, que normalmente llamará a un formateador.

Tenga en cuenta que no es necesario que el formato se produzca sincrónicamente. Puede retrasarse hasta que logRecord se escriba realmente en un receptor externo.

Los métodos de registro se agrupan en cinco categorías principales: <ul><li>

Hay un conjunto de métodos "log" que toman un nivel de registro, una cadena de mensaje y, opcionalmente, algunos parámetros a la cadena de mensaje. <Li>

Hay un conjunto de métodos "logp" (para "log precise") que son como los métodos "log", pero también toman un nombre explícito de la clase de origen y el nombre del método. <Li>

Hay un conjunto de métodos "logrb" (para "log with resource bundle") que son como el método "logp", pero también toman un objeto de agrupación de recursos explícito para usarlo en la localización del mensaje de registro. <Li>

Hay métodos útiles para las entradas del método de seguimiento (los métodos "entrar"), el método devuelve (los métodos "salir") y produce excepciones (los métodos "iniciando". <Li>

Por último, hay un conjunto de métodos de conveniencia para su uso en los casos muy simples, cuando un desarrollador simplemente quiere registrar una cadena simple en un nivel de registro determinado. Estos métodos se denominan después de los nombres estándar level ("severe", "warning", "info", etc.) y toman un único argumento, una cadena de mensaje. </ul>

Para los métodos que no toman un nombre de origen explícito y un nombre de método, el marco de registro hará un "mejor esfuerzo" para determinar qué clase y método se llama al método de registro. Sin embargo, es importante darse cuenta de que esta información deducida automáticamente solo puede ser aproximada (o incluso puede ser bastante incorrecta). Las máquinas virtuales pueden realizar optimizaciones extensas cuando JITing y pueden quitar completamente fotogramas de pila, lo que hace que sea imposible localizar de forma confiable la clase y el método que realiza la llamada.

Todos los métodos del registrador son seguros para varios subprocesos.

<b>Información de subclases:</b> Tenga en cuenta que una clase LogManager puede proporcionar su propia implementación de registradores con nombre para cualquier punto del espacio de nombres. Por lo tanto, todas las subclases de Logger (a menos que se implementen junto con una nueva clase LogManager) deben tener cuidado para obtener una instancia de Registrador de la clase LogManager y deben delegar operaciones como "isLoggable" y "log(LogRecord)" en esa instancia. Tenga en cuenta que para interceptar todas las salidas de registro, las subclases solo necesitan invalidar el método log(LogRecord). Todos los demás métodos de registro se implementan como llamadas en este método log(LogRecord).

Agregado en la versión 1.4.

Documentación de Java para java.util.logging.Logger.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

Logger(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Logger(String, String)

Método protegido para construir un registrador para un subsistema con nombre.

Campos

GlobalLoggerName

GLOBAL_LOGGER_NAME es un nombre para el registrador global.

Propiedades

AnonymousLogger

Cree un registrador anónimo.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Filter

Obtenga el filtro actual para este registrador. -o bien- Establezca un filtro para controlar la salida en este registrador.

Global

Devuelve el objeto de registrador global con el nombre Logger.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
JniPeerMembers

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

Level

Obtenga el nivel de registro que se ha especificado para este registrador. -o bien- Establezca el nivel de registro que especifica qué niveles de mensaje registrará este registrador.

Name

Obtenga el nombre de este registrador.

Parent

Devuelve el elemento primario de este registrador. -o bien- Establezca el elemento primario para este registrador.

PeerReference

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
ResourceBundle

Recupere la agrupación de recursos de localización para este registrador. -o bien- Establece un conjunto de recursos en este registrador.

ResourceBundleName

Recupere el nombre del lote de recursos de localización para este registrador.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

UseParentHandlers

Descubra si este registrador envía o no su salida a su registrador primario. -o bien- Especifique si este registrador debe enviar o no su salida a su registrador primario.

Métodos

AddHandler(Handler)

Agregue un controlador de registro para recibir mensajes de registro.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Config(ISupplier)

Registre un mensaje CONFIG, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Config(String)

Registre un mensaje CONFIG.

Dispose()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
Dispose(Boolean)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
Entering(String, String)

Registre una entrada de método.

Entering(String, String, Object)

Registre una entrada de método, con un parámetro.

Entering(String, String, Object[])

Registre una entrada de método, con una matriz de parámetros.

Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Exiting(String, String)

Registre una devolución de método.

Exiting(String, String, Object)

Registre una devolución de método, con el objeto result.

Fine(ISupplier)

Registre un mensaje FINE, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Fine(String)

Registre un mensaje FINE.

Finer(ISupplier)

Registre un mensaje FINER, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Finer(String)

Registre un mensaje FINER.

Finest(ISupplier)

Registre un mensaje FINEST, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Finest(String)

Registre un mensaje FINEST.

GetAnonymousLogger(String)

Cree un registrador anónimo.

GetHandlers()

Obtenga los controladores asociados a este registrador.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetLogger(String)

Busque o cree un registrador para un subsistema con nombre.

GetLogger(String, String)

Busque o cree un registrador para un subsistema con nombre.

Info(ISupplier)

Registre un mensaje INFO, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Info(String)

Registre un mensaje INFO.

IsLoggable(Level)

Compruebe si este registrador registraría realmente un mensaje del nivel especificado.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Log(Level, ISupplier)

Registre un mensaje, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Log(Level, String)

Registre un mensaje, sin argumentos.

Log(Level, String, Object)

Registre un mensaje, con un parámetro de objeto.

Log(Level, String, Object[])

Registre un mensaje con una matriz de argumentos de objeto.

Log(Level, String, Throwable)

Registre un mensaje con la información throwable asociada.

Log(Level, Throwable, ISupplier)

Registre un mensaje construido de forma diferida, con información throwable asociada.

Log(LogRecord)

Registre un logRecord.

Logp(Level, String, String, ISupplier)

Registre un mensaje construido de forma diferida, especificando la clase y el método de origen, sin argumentos.

Logp(Level, String, String, String)

Registre un mensaje, especificando la clase y el método de origen, sin argumentos.

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

Registre un mensaje, especificando la clase y el método de origen, con un único parámetro de objeto para el mensaje de registro.

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

Registre un mensaje, especificando la clase y el método de origen, con una matriz de argumentos de objeto.

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

Registre un mensaje, especificando la clase y el método de origen, con información throwable asociada.

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

Registre un mensaje construido de forma diferida, especificando la clase y el método de origen, con la información throwable asociada.

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

Registre un mensaje, especificando el nombre de la agrupación de recursos, el método y la clase de origen sin argumentos.

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

Registre un mensaje, especificando la clase de origen, el método y la agrupación de recursos, con la información throwable asociada.

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

Registre un mensaje, especificando el nombre de la agrupación de recursos, el método y la clase de origen sin argumentos.

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

Registre un mensaje, especificando el nombre de la agrupación de recursos, el método y la clase de origen, con un único parámetro de objeto para el mensaje de registro.

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

Registre un mensaje, especificando la clase de origen, el método y el nombre del lote de recursos, con una matriz de argumentos de objeto.

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

Registre un mensaje, especificando el nombre de la agrupación de recursos, el método y la clase de origen, con la información throwable asociada.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
RemoveHandler(Handler)

Quite un controlador de registro.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Severe(ISupplier)

Registre un mensaje GRAVE, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Severe(String)

Registre un mensaje GRAVE.

Throwing(String, String, Throwable)

Registro que produce una excepción.

ToArray<T>()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Warning(ISupplier)

Registre un mensaje WARNING, que solo se va a construir si el nivel de registro es tal que el mensaje se registrará realmente.

Warning(String)

Registre un mensaje WARNING.

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.Finalized()

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

GetJniTypeName(IJavaPeerable)

Un objeto Logger se usa para registrar mensajes para un componente específico del sistema o de la aplicación.

Se aplica a