Ao solucionar problemas de falha na entrega de mensagens ou atraso do consumidor no ApsaraMQ for RocketMQ, os logs do cliente são sua principal ferramenta de diagnóstico. O SDK para Java gera automaticamente arquivos de log que registram exceções de tempo de execução, eventos de conexão e detalhes do ciclo de vida das mensagens.
Recomendamos usar as versões mais recentes dos SDKs do RocketMQ 5.x. Esses SDKs são totalmente compatíveis com os corretores do ApsaraMQ for RocketMQ 5.x e oferecem mais funções e recursos aprimorados. Para mais informações, consulte Java SDK version guide.
A Alibaba Cloud mantém apenas os SDKs de cliente do RocketMQ 3.x, 4.x e TCP. Recomendamos usá-los apenas para aplicações existentes.
Configurações padrão de log
O cliente gera arquivos de log automaticamente com as seguintes configurações padrão:
|
Configuração |
Valor padrão |
Personalizável |
Propriedade do sistema |
|
Caminho de armazenamento de log |
|
Sim |
|
|
Nível de log |
|
Sim |
|
|
Número máximo de arquivos de log retidos |
|
Sim |
|
|
Tamanho do arquivo de log |
|
Não |
N/A |
No caminho padrão, {user.home} é o diretório home da conta que executa o processo Java.
Níveis de log
Os níveis de log válidos são:
|
Nível |
|
|
|
|
|
|
|
|
Ative a gravação de logs
O SDK para Java usa a API SLF4J para registro de logs. A configuração depende da sua versão do SDK.
SDK para Java 1.7.8.Final ou posterior
Nenhuma configuração necessária. Essas versões incluem um framework de log integrado que gerencia a saída de log automaticamente.
Versões do SDK para Java anteriores à versão 1.7.8.Final
Adicione uma dependência de um framework de log compatível (Log4j ou Logback) ao seu arquivo pom.xml ou .lib.
O SDK para Java 1.7.8.Final e versões anteriores suportam apenas Log4j e Logback. O Log4j2 não é compatível.
-
Se a sua aplicação incluir tanto o Log4j quanto o Logback, conflitos de log impedem a gravação correta dos logs do cliente. Use apenas um framework de log. Para identificar conflitos, execute:
mvn clean dependency:tree | grep log Para evitar essas limitações, atualize para a versão mais recente do SDK para Java.
Personalize os logs do cliente
A configuração personalizada de log requer o SDK para Java 1.2.5 ou posterior.
Passe as propriedades do sistema Java usando a flag -D no seu script de inicialização ou nas opções da máquina virtual (VM) do seu ambiente de desenvolvimento integrado (IDE).
Propriedades disponíveis
|
Propriedade |
Descrição |
Valores válidos |
|
|
Diretório dos arquivos de log |
Qualquer caminho com permissão de gravação no seu sistema |
|
|
Nível mínimo de log |
|
|
|
Número máximo de arquivos de log retidos |
De |
Exemplos
Linux ou macOS:
-Dons.client.logRoot=/home/admin/logs -Dons.client.logLevel=WARN -Dons.client.logFileMaxIndex=20
Windows:
-Dons.client.logRoot=D:\logs -Dons.client.logLevel=WARN -Dons.client.logFileMaxIndex=20
Substitua /home/admin/logs e D:\logs pelos diretórios reais do seu sistema. O processo da aplicação deve ter permissão de gravação no caminho especificado. Caso contrário, os logs não poderão ser gravados.
Solucione problemas de log
|
Sintoma |
Causa |
Solução |
|
Nenhum arquivo de log gerado |
Dependência do framework de log ausente (SDK anterior à versão 1.7.8.Final) |
Adicione uma dependência do Log4j ou Logback ao seu |
|
Saída de log vazia ou ausente |
Log4j e Logback presentes no classpath |
Remova um dos frameworks. Execute |
|
Logs gravados em diretório inesperado |
O |
Defina |
|
Arquivos de log crescem sem limite |
A retenção padrão mantém 10 arquivos de 64 MB cada (total de 640 MB) |
Reduza o valor de |