Sería útil adjuntar automáticamente archivos de registro para admitir correos electrónicos. Podría establecer el camino programáticamente (como en Setting Logback Appender path programmatically), pero preferiría permitir a los usuarios configurar el registro de la manera familiar a través del logback.xml
. Entonces, ¿puedo encontrar los archivos que Logback usa para iniciar sesión?¿Es posible encontrar archivos de logback log programmatically?
Respuesta
Puede obtener la lista de todos los appenders en un contexto determinado. Para ello:
LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
for (Logger logger : context.getLoggerList()) {
for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) {
Appender<ILoggingEvent> appender = index.next();
}
}
Este itera sobre la lista de todos appenders en todos los registradores para el contexto actual.
El método iteratorForAppenders ya no existe en el registrador (http://www.slf4j.org/apidocs/org/slf4j/Logger.html). ¿Alguna idea de cómo funciona ahora? – user3885927
@ user3885927 asegúrese de importar ch.qos.logback.classic.Logger y no org.slf4j.Logger! – Catchwa
La respuesta dada por @ tafoo85 es correcta, pero solo le dará apéndices.
Para obtener un archivo más específico usado por Loglog logger espero que el siguiente código ayude a alguien.
File clientLogFile;
FileAppender<?> fileAppender = null;
LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
for (Logger logger : context.getLoggerList())
{
for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders();
index.hasNext();)
{
Object enumElement = index.next();
if (enumElement instanceof FileAppender) {
fileAppender=(FileAppender<?>)enumElement;
}
}
}
if (fileAppender != null) {
clientLogFile=new File(fileAppender.getFile());
}
else {
clientLogFile = null;
}
Log.d("logfile path", clientLogFile.getAbsolutePath());
Era exactamente lo que necesitaba, aunque cambié la línea 'Object enumElement = index.next();' a 'Appender
@danial que será más específico. pero si quiere el registrador de archivos 2-3 (depuración y rastreo), este código funcionará perfectamente. – androidnoobdev
- 1. ¿Es posible activar el evento onbeforeunload programmatically?
- 2. Modificar archivos programmatically csproj
- 3. Creando logger logger programmatically
- 4. ¿Es log (n!) = Θ (n · log (n))?
- 5. logback slf4j No es posible obtener declaraciones de registro en el archivo de registro
- 6. ¿Qué herramienta es útil para leer los archivos log log4j?
- 7. ¿Qué es log-likelihood?
- 8. Logback, establecer archivos de historial máximo por día
- 9. Logback - ajuste el nombre de archivo de registro mediante programación
- 10. ¿Es posible proteger archivos swf?
- 11. ¿Es posible usar Ajax para cargar archivos?
- 12. Logback tutorial
- 13. Logback para registrar mensajes diferentes en dos archivos
- 14. Logback nativa VS Logback través SLF4J
- 15. ¿Qué es O (log * N)?
- 16. ¿Es posible encontrar la diferencia entre dos archivos de texto arbitrarios usando Git?
- 17. ¿Logback admite log4j appenders?
- 18. ¿Es posible calcular la mediana de una lista de números mejor que O (n log n)?
- 19. ¿Es posible ordenar archivos en Amazon S3?
- 20. cambio de log4j a logback
- 21. ¿Es posible ejecutar archivos binarios en Java?
- 22. ¿Es posible dividir los archivos maven pom?
- 23. FileNamePattern en RollingFileAppender - logback Configuración
- 24. ¿Es posible encontrar cobertura de código en ColdFusion?
- 25. Logback en aplicaciones EAR java
- 26. ¿Cómo ocultar UITabBarController programmatically?
- 27. Uso de Logback y listas de impresión
- 28. Git pull change log
- 29. Fuerza slf4j para usar logback
- 30. UISegmentedControl value changed programmatically
Lo siento pero no entiendo la pregunta. ¿Podrías expandir un poco? – Ceki
@Ceki: de manera más general, ¿puedo obtener una lista de todos los appenders utilizados por Logback? –