Logger Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo.
[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
- Herança
- Atributos
Comentários
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. Os registradores são normalmente nomeados, usando um namespace hierárquico separado por pontos. Os nomes de registro em log podem ser cadeias de caracteres arbitrárias, mas normalmente devem ser baseados no nome do pacote ou no nome da classe do componente registrado, como java.net ou javax.swing. Além disso, é possível criar Loggers "anônimos" que não são armazenados no namespace Logger.
Objetos de logger podem ser obtidos por chamadas em um dos métodos de fábrica getLogger. Eles criarão um novo Logger ou retornarão um Logger existente adequado. É importante notar que o Logger retornado por um dos métodos de getLogger
fábrica pode ser lixo coletado a qualquer momento se uma forte referência ao Logger não for mantida.
As mensagens de log serão encaminhadas para objetos Handler registrados, que podem encaminhar as mensagens para uma variedade de destinos, incluindo consoles, arquivos, logs do sistema operacional, etc.
Cada Logger mantém o controle de um Logger "pai", que é seu ancestral existente mais próximo no namespace Logger.
Cada Logger tem um "Nível" associado a ele. Isso reflete um nível mínimo com o qual esse madeireiro se preocupa. Se o nível de um Logger é definido como null
, então seu nível efetivo é herdado de seu pai, que por sua vez pode obtê-lo recursivamente de seu pai, e assim por diante na árvore.
O nível de log pode ser configurado com base nas propriedades do arquivo de configuração de log, conforme descrito na descrição da classe LogManager. No entanto, ele também pode ser alterado dinamicamente por chamadas no método Logger.setLevel. Se o nível de um registrador for alterado, a alteração também poderá afetar os registradores filho, uma vez que qualquer registrador filho que tenha null
como nível herdará seu nível efetivo de seu pai.
Em cada chamada de log, o Logger executa inicialmente uma verificação barata do nível de solicitação (por exemplo, SEVERE ou FINE) em relação ao nível de log efetivo do registrador. Se o nível de solicitação for menor que o nível de log, a chamada de log retornará imediatamente.
Depois de passar nesse teste inicial (barato), o Logger alocará um LogRecord para descrever a mensagem de log. Em seguida, ele chamará um filtro (se houver) para fazer uma verificação mais detalhada sobre se o registro deve ser publicado. Se isso passar, ele publicará o LogRecord em seus manipuladores de saída. Por padrão, os registradores também publicam nos manipuladores de seus pais, recursivamente na árvore.
Cada Logger pode ter um ResourceBundle
associado a ele. O ResourceBundle
pode ser especificado por nome, usando o #getLogger(java.lang.String, java.lang.String)
método de fábrica, ou por valor - usando o #setResourceBundle(java.util.ResourceBundle) setResourceBundle
método. Esse pacote será usado para localizar mensagens de log. Se um Logger não tiver seu próprio ResourceBundle
nome de pacote de recursos, ele herdará o nome do ResourceBundle
pacote de recursos ou de seu pai, recursivamente acima da árvore.
A maioria dos métodos de saída do registrador usa um argumento "msg". Esse argumento msg pode ser um valor bruto ou uma chave de localização. Durante a formatação, se o registrador tiver (ou herdar) uma localização ResourceBundle
e se o ResourceBundle
tiver um mapeamento para a cadeia de caracteres msg, a cadeia de caracteres msg será substituída pelo valor localizado. Caso contrário, a sequência de caracteres msg original é usada. Normalmente, formatters usam formatação de estilo java.text.MessageFormat para formatar parâmetros, portanto, por exemplo, uma cadeia de caracteres de formato "{0}{1}" formataria dois parâmetros como cadeias de caracteres.
Um conjunto de métodos alternativamente usa um argumento "msgSupplier" em vez de "msg". Esses métodos usam uma Supplier
<String>
função que é invocada para construir a mensagem de log desejada somente quando a mensagem realmente deve ser registrada com base no nível de log efetivo, eliminando assim a construção desnecessária da mensagem. Por exemplo, se o desenvolvedor quiser registrar o status de integridade do sistema para diagnóstico, com a versão de aceitação de cadeia de caracteres, o código será semelhante a:
<code>
class DiagnosisMessages {
static String systemHealthStatus() {
// collect system health information
...
}
}
...
logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
</code>
Com o código acima, o status de integridade é coletado desnecessariamente mesmo quando o FINER de nível de log está desabilitado. Com a versão de aceitação do fornecedor como abaixo, o status só será coletado quando o FINER no nível de log estiver habilitado.
<code>
logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
</code>
Ao procurar um ResourceBundle
, o registrador primeiro verificará se um pacote foi especificado usando #setResourceBundle(java.util.ResourceBundle) setResourceBundle
o , e somente se um nome de pacote de recursos foi especificado por meio do #getLogger(java.lang.String, java.lang.String) getLogger
método de fábrica. Se nenhum ResourceBundle
ou nenhum nome de pacote de recursos for encontrado, ele usará o nome do pacote de recursos mais próximo ResourceBundle
ou herdado de sua árvore pai.<br> Quando um ResourceBundle
foi herdado ou especificado através do #setResourceBundle(java.util.ResourceBundle) setResourceBundle
método, então que ResourceBundle
será usado. Caso contrário, se o registrador tiver apenas ou herdado um nome de pacote de recursos, esse nome de pacote de recursos será mapeado para um ResourceBundle
objeto, usando a localidade padrão no momento do log. <br id="ResourceBundleMapping">Ao mapear nomes de pacotes de recursos para ResourceBundle
objetos, o registrador primeiro tentará usar o carregador de classes de contexto java.lang.Thread#getContextClassLoader() do thread para mapear o nome do pacote de recursos fornecido para um ResourceBundle
arquivo . Se o carregador de classes de contexto de thread for null
, ele tentará o carregador de classes do sistema java.lang.ClassLoader#getSystemClassLoader(). Se o ResourceBundle
ainda não for encontrado, ele usará o carregador de classes do primeiro chamador do #getLogger(java.lang.String, java.lang.String) getLogger
método de fábrica.
A formatação (incluindo a localização) é de responsabilidade do manipulador de saída, que normalmente chamará um Formatter.
Observe que a formatação não precisa ocorrer de forma síncrona. Ele pode ser atrasado até que um LogRecord seja realmente gravado em um coletor externo.
Os métodos de registro são agrupados em cinco categorias principais: <ul><li>
Há um conjunto de métodos "log" que usam um nível de log, uma cadeia de caracteres de mensagem e, opcionalmente, alguns parâmetros para a cadeia de caracteres de mensagem. <li>
Há um conjunto de métodos "logp" (para "log preciso") que são como os métodos "log", mas também usam um nome de classe de origem explícito e um nome de método. <li>
Há um conjunto de método "logrb" (para "log com pacote de recursos") que são como o método "logp", mas também usam um objeto de pacote de recursos explícito para uso na localização da mensagem de log. <li>
Existem métodos de conveniência para rastrear entradas de método (os métodos "entrando"), retornos de método (os métodos "saindo") e lançando exceções (os métodos "lançando"). <li>
Finalmente, há um conjunto de métodos de conveniência para uso nos casos mais simples, quando um desenvolvedor simplesmente deseja registrar uma cadeia de caracteres simples em um determinado nível de log. Esses métodos são nomeados após os nomes de nível padrão ("severo", "aviso", "info", etc.) e usam um único argumento, uma cadeia de caracteres de mensagem. </ul>
Para os métodos que não usam um nome de origem explícito e um nome de método, a estrutura de log fará um "melhor esforço" para determinar qual classe e método chamado no método de log. No entanto, é importante perceber que essa informação inferida automaticamente pode ser apenas aproximada (ou pode até estar completamente errada!). As máquinas virtuais têm permissão para fazer otimizações extensas quando JITing e podem remover totalmente os quadros de pilha, tornando impossível localizar de forma confiável a classe e o método de chamada.
Todos os métodos no Logger são seguros para vários threads.
<b>Informações de subclassificação:</b> Observe que uma classe LogManager pode fornecer sua própria implementação de Loggers nomeados para qualquer ponto no namespace. Portanto, quaisquer subclasses do Logger (a menos que sejam implementadas em conjunto com uma nova classe LogManager) devem ter o cuidado de obter uma instância do Logger da classe LogManager e devem delegar operações como "isLoggable" e "log(LogRecord)" a essa instância. Observe que, para interceptar toda a saída de log, as subclasses precisam apenas substituir o método log(LogRecord). Todos os outros métodos de log são implementados como chamadas neste método log(LogRecord).
Adicionado em 1.4.
Documentação Java para java.util.logging.Logger
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Construtores
Logger(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução. |
Logger(String, String) |
Método protegido para construir um registrador para um subsistema nomeado. |
Campos
GlobalLoggerName |
GLOBAL_LOGGER_NAME é um nome para o logger global. |
Propriedades
AnonymousLogger |
Crie um registrador anônimo. |
Class |
Retorna a classe de tempo de execução deste |
Filter |
Obtenha o filtro atual para este Logger. -ou- Defina um filtro para controlar a saída neste Logger. |
Global |
Retornar objeto de log global com o nome Logger. |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
JniIdentityHashCode |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
JniPeerMembers |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. |
Level |
Obtenha o nível de log que foi especificado para este registrador. -ou- Defina o nível de log especificando quais níveis de mensagem serão registrados por esse registrador. |
Name |
Obtenha o nome para este registrador. |
Parent |
Retorne o pai para este Logger. -ou- Defina o pai para este Logger. |
PeerReference |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
ResourceBundle |
Recupere o pacote de recursos de localização para este registrador. -ou- Define um pacote de recursos neste registrador. |
ResourceBundleName |
Recupere o nome do pacote de recursos de localização para esse registrador. |
ThresholdClass |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
ThresholdType |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
UseParentHandlers |
Descubra se esse registrador está enviando ou não sua saída para o registrador pai. -ou- Especifique se esse registrador deve ou não enviar sua saída para o registrador pai. |
Métodos
AddHandler(Handler) |
Adicione um manipulador de log para receber mensagens de log. |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
Config(ISupplier) |
Registre uma mensagem CONFIG, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Config(String) |
Registre uma mensagem CONFIG. |
Dispose() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
Dispose(Boolean) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
Entering(String, String) |
Registre uma entrada de método. |
Entering(String, String, Object) |
Registre uma entrada de método, com um parâmetro. |
Entering(String, String, Object[]) |
Registre uma entrada de método, com uma matriz de parâmetros. |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
Exiting(String, String) |
Registre um retorno de método. |
Exiting(String, String, Object) |
Registre um retorno de método, com objeto result. |
Fine(ISupplier) |
Registre uma mensagem FINE, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Fine(String) |
Registre uma mensagem FINE. |
Finer(ISupplier) |
Registre uma mensagem FINER, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Finer(String) |
Registre uma mensagem FINER. |
Finest(ISupplier) |
Registre uma mensagem FINETE, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Finest(String) |
Registre uma mensagem FINE. |
GetAnonymousLogger(String) |
Crie um registrador anônimo. |
GetHandlers() |
Obtenha os manipuladores associados a este registrador. |
GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
GetLogger(String) |
Localize ou crie um registrador para um subsistema nomeado. |
GetLogger(String, String) |
Localize ou crie um registrador para um subsistema nomeado. |
Info(ISupplier) |
Registre uma mensagem INFO, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Info(String) |
Registre uma mensagem INFO. |
IsLoggable(Level) |
Verifique se uma mensagem do nível fornecido seria realmente registrada por esse registrador. |
JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
Log(Level, ISupplier) |
Registre uma mensagem, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Log(Level, String) |
Registre uma mensagem, sem argumentos. |
Log(Level, String, Object) |
Registre uma mensagem com um parâmetro de objeto. |
Log(Level, String, Object[]) |
Registre uma mensagem com uma matriz de argumentos de objeto. |
Log(Level, String, Throwable) |
Registre uma mensagem, com informações Throwable associadas. |
Log(Level, Throwable, ISupplier) |
Registre uma mensagem construída preguiçosamente, com informações Throwable associadas. |
Log(LogRecord) |
Registre um LogRecord. |
Logp(Level, String, String, ISupplier) |
Registre uma mensagem construída preguiçosamente, especificando a classe e o método de origem, sem argumentos. |
Logp(Level, String, String, String) |
Registre uma mensagem, especificando a classe e o método de origem, sem argumentos. |
Logp(Level, String, String, String, Object) |
Registre uma mensagem, especificando a classe e o método de origem, com um único parâmetro de objeto para a mensagem de log. |
Logp(Level, String, String, String, Object[]) |
Registre uma mensagem, especificando a classe e o método de origem, com uma matriz de argumentos de objeto. |
Logp(Level, String, String, String, Throwable) |
Registre uma mensagem, especificando a classe e o método de origem, com informações Throwable associadas. |
Logp(Level, String, String, Throwable, ISupplier) |
Registre uma mensagem construída preguiçosamente, especificando a classe e o método de origem, com informações Throwable associadas. |
Logrb(Level, String, String, ResourceBundle, String, Object[]) |
Registre uma mensagem, especificando a classe de origem, o método e o nome do pacote de recursos sem argumentos. |
Logrb(Level, String, String, ResourceBundle, String, Throwable) |
Registre uma mensagem, especificando a classe de origem, o método e o pacote de recursos, com informações Throwable associadas. |
Logrb(Level, String, String, String, String) |
Registre uma mensagem, especificando a classe de origem, o método e o nome do pacote de recursos sem argumentos. |
Logrb(Level, String, String, String, String, Object) |
Registre uma mensagem, especificando a classe de origem, o método e o nome do pacote de recursos, com um único parâmetro de objeto na mensagem de log. |
Logrb(Level, String, String, String, String, Object[]) |
Registre uma mensagem, especificando a classe de origem, o método e o nome do pacote de recursos, com uma matriz de argumentos de objeto. |
Logrb(Level, String, String, String, String, Throwable) |
Registre uma mensagem, especificando a classe de origem, o método e o nome do pacote de recursos, com informações Throwable associadas. |
Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
RemoveHandler(Handler) |
Remova um manipulador de log. |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
Severe(ISupplier) |
Registre uma mensagem GRAVE, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Severe(String) |
Registre uma mensagem GRAVE. |
Throwing(String, String, Throwable) |
Log lançando uma exceção. |
ToArray<T>() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
Wait() |
Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>. (Herdado de Object) |
Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Warning(ISupplier) |
Registre uma mensagem de AVISO, que só deve ser construída se o nível de log for tal que a mensagem será realmente registrada. |
Warning(String) |
Registre uma mensagem de AVISO. |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.Finalized() |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.JniManagedPeerState |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. (Herdado de Object) |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. |
GetJniTypeName(IJavaPeerable) |
Um objeto Logger é usado para registrar mensagens para um sistema específico ou componente de aplicativo. |