LogManager类有两个方法:GetLogger和GetCurrentClassLogger,带有一个重载参数TypeloggerTypepublicstaticLoggerGetLogger(stringname,TypeloggerType)publicstaticLoggerGetCurrentClassLogger(TypeloggerType)文档指出loggerType是“要创建的记录器的类型”。该类型必须继承自NLog.Logger。'这种重载的目的是什么?为什么我可能需要创建继承类型的记录器? 最佳答案 如果您想
我想关闭我的应用程序并写入任何待处理的日志消息。所以我在关机过程中调用了LogManager.Flush()。但是,我没有看到所有的消息都写出来了。相反,如果我等待几秒钟(使用Thread.Sleep()),我会看到消息。检查后NLog'scodeonGitHUB,我发现AsyncTargetWrapper.FlushAsync()方法仅安排惰性写入器线程在下一批中写入所有待处理消息。它不会同步写入日志消息。这是预期的行为吗?我期望LogManager.Flush()是同步的,即:阻塞直到所有未决消息被写入(或超过超时)。我在关机时使用的代码:LogManager.Flush(ex=>
我有一个专门的记录器类,它使用java.util.logging.Logger类。我希望能够在另一个类的关闭Hook中使用这个记录器。但是,它似乎没有在关机时登录。根据我的阅读,可能已经为导致问题的记录器本身激活了一个关闭Hook。我怎样才能让它发挥作用?理想情况下,我希望在日志文件中看到我确实在进程终止时执行了关闭Hook。 最佳答案 再次查看源代码,解决方案似乎是定义一个系统属性java.util.logging.manager,它是LogManager的子类,覆盖了reset();方法,以便Loggers在关闭时继续工作。im
当我尝试将jbosseap6.3安装为服务时。我得到以下错误。任何人都对以下错误有任何想法。任何一盏灯都意味着它对我很有帮助。java.lang.IllegalArgumentException:Failedtoinstantiateclass"org.jboss.logmanager.handlers.PeriodicRotatingFileHandler"forhandler"FILE"atorg.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractProper
我在我的java应用程序中使用log4j2.3。我通过maven添加了依赖项。在eclipse中运行程序时一切正常,但是当我用maven打包并尝试运行jar时,出现以下错误:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apachelogging/log4j/LogManageratmain.myclass.(myclass.java:11)Causedby:java.lang.ClassNotFoundException:org.apache.logging.log4j.LogManageratjava.net.U
我正在开发GWT应用程序。它使用RPC从内部系统收集信息。它通过使用库jar来实现,我们称它为alpha.jar。我们在许多应用程序中使用这个jar,所以它工作正常,顺便说一句,它是用ANT构建的,在eclipse之外。alpha.jar中的一些类引用LOG4J2以及许多其他外部jar,因此当我们运行一个应用程序时,我们将类路径传递给所有这些类,一切正常。请注意,这不是一个简单的初学者问题。alpha.jar正常工作,包括对Log4J的调用。问题:在Eclipse中,我有这个GWT应用程序项目和Alpha.jar项目(当然还有源代码)。服务器部分需要实例化alpha对象并与alpha系
这个问题在这里已经有了答案:Islog4j2compatiblewithJava11?(5个答案)关闭去年。我在Java11中使用log4j2(2.11.1)并尝试使用以下方法获取Logger对象:privatestaticfinalLoggerLOG=LogManager.getLogger();(从org.apache.logging.log4j中的log4j-api导入)在运行时,我收到以下错误:WARNING:sun.reflect.Reflection.getCallerClassisnotsupported.Thiswillimpactperformance.Excepti
每当我想在我的应用程序中显示进度条时,我都会调用此方法,此方法会将ProgressBar添加到我的布局中。问题:我想在Dialog上显示这个进度条,但Dialog总是显示在上方。对于这种情况可以做些什么?publicstaticvoidshowProgressBar(@NonNullfinalActivityactivity){try{if(activity==null){LogManager.printStackTrace(newNullActivityException());return;}Viewview=activity.findViewById(android.R.id.c
我刚刚在将我的一个新项目的JDK版本从7u45切换到8u20时遇到了一个奇怪的错误。我的类(class)开始时无害的LogManager声明被拒绝并出现以下错误:Thetypejava.lang.reflect.AnnotatedElementcannotberesolved.Itisindirectlyreferencedfromrequired.classfiles这是代码:publicclassClass1{privatestaticLoggerlog=LogManager.getLogger(Class1.class);...Eclipse建议我配置构建路径,但我不知道配置什么
logger.setLevel()方法在log4j2API中不可用。那么如何在运行时设置日志级别。 最佳答案 我不确定这是否是最好的方法,但您可以在org.apache.logging.log4j.core.config.LoggerConfig上设置级别,您可以通过日志管理器。设置后,您可以使用新配置更新记录器。举个例子:publicstaticvoidmain(String[]args){Loggerlog=LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);log.error("