【发布时间】:2015-08-16 00:41:00
【问题描述】:
我有一个关于 Logback 的问题。
短版
如果附加程序的创建失败(例如权限被拒绝),当权限问题得到解决时,我如何明确地重新尝试创建它。我正在使用 XML 配置。我想在不重新启动流程的情况下执行此操作。
加长版
我在 Android (logback-android) 上使用 Logback。
我正在登录到外部存储上的一个目录,这意味着如果用户将设备连接到 PC 并启用大容量存储,则该目录的文件系统将被卸载。
如果应用程序启动,而目录不可用,我会通知用户,但由于记录器被定义为静态字段...
private static final Logger LOG = LoggerFactory.getLogger(MyApplication.class);
...当我的类被类加载器加载并失败时,Logback 无论如何都会尝试创建附加器。
由于 Android 的工作原理,即使用户离开我的应用程序的所有屏幕(例如转到主屏幕),应用程序进程也会继续运行,因此永远不会重新尝试创建附加程序。
有没有办法从配置中重置附加程序?如果是这样,只要用户进入我的应用程序的初始屏幕,我就可以在必要时尝试重置 Logback。
我试图用 ... 阻止它
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
if (loggerContext != null)
loggerContext.stop();
...这似乎工作正常,但我似乎无法重新启动它:
loggerContext.start()
这似乎不会重新创建附加程序。
非常感谢您的帮助。
【问题讨论】:
标签: java android logback appender