草庐IT

java - Log4j 单例包装器的好处?

我最近继承了一些Java代码,需要将其集成到我正在从事的项目中。我的项目是一个处理和转换XML消息的服务代理。在查看新代码时,我发现了以下日志记录类:importorg.apache.log4j.BasicConfigurator;importorg.apache.log4j.Level;importorg.apache.log4j.Logger;publicclassMyLogger{privatestaticMyLoggerinstance=null;protectedfinalstaticLoggerlog=Logger.getLogger(MyLogger.class);pri

java - Log4J:关闭 Hook 上的致命异常,无法弄清楚原因

我刚刚将log4j集成到我的应用程序中,并且我正在设置AspectJ以使用log4j并最终将所有登录转移出我的主代码。所以,简而言之,我正在设置执行日志条目的方面,然后在短时间内运行我的程序来测试它们。在这些短期运行期间,我经常遇到以下异常:2015-09-2815:21:48,222Thread-4FATALUnabletoregistershutdownhookbecauseJVMisshuttingdown.java.lang.IllegalStateException:Cannotaddnewshutdownhookasthisisnotstarted.Currentstate

java - 如何区分日志文件中的 log4j session 与同一 Web 应用程序的副本?

只有一个文件。它是在网络应用副本运行时同时编写的。如何从其他日志行中仅过滤一条session日志消息? 最佳答案 使用包含NDC或MDC信息的servlet过滤器是我见过的最佳方式。两者的快速比较可在http://wiki.apache.org/logging-log4j/NDCvsMDC获得。.我发现MDC过去对我来说效果更好。请记住,您需要更新log4j属性文件以包含您喜欢的任何版本(模式定义位于http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Patter

java - 为什么 log4j 在(多次)重复相同异常后禁用堆栈跟踪?

在我们的一个客户安装中,我们遇到了数千次相同的异常。在大量记录良好的堆栈跟踪(9332)之后,仍然记录了异常的发生,但没有堆栈跟踪。重新启动java进程后,同样的事情:这次我们有17858个堆栈跟踪,然后只有异常发生本身。有个类似的问题here,但没有答案...这是log4j的特性还是错误?(我相信前者,因为我真的很喜欢那些apache家伙做的事)有什么想法吗? 最佳答案 使用Java5或更高版本?然后你会看到:ThecompilerintheserverVMnowprovidescorrectstackbacktracesfora

java - 使用 com4j 连接到现有的 iTunes 实例

使用com4j和iTunes包装器我可以启动一个iTunes实例ClassFactory.createiTunesApp();从我的应用程序成功使用API。但如果iTunes已经独立运行,那么它会失败com4j.ExecutionException:com4j.ComException:80080005CoCreateInstancefailed:Serverexecutionfailed:.\com4j.cpp:153atcom4j.ComThread.execute(ComThread.java:236)atcom4j.Task.execute(Task.java:26)atcom

java - Neo4j:如何使用 java api 在 neo4j 中打开现有数据库?

如何使用javaapi在neo4j中使用已有的数据库?我已经创建了一个neo4j数据库并想将其用于多个查询。但是,当我打开我创建的现有数据库并进行一些查询时,它没有返回任何内容。我使用的代码片段如下:privatestaticfinalStringDB_PATH="c:/Users/Reed/workspace/test/target1/ttldb";GraphDatabaseServicedb=newGraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);ExecutionEngineengine=newExecutionEngine(

java - 将org.slf4j.MDC与Netty channel 一起使用?

实际上,我想做的是HowtouseMDCwiththreadpools?所要问的,但要与Netty一起。我想要每个Channel关联的MDC信息。Netty有哪些选择?如果我需要手动重置MDC,可以使用哪种方法从一个地方进行重置? 最佳答案 看看GitHub上的mdedetrich/mdc-async-netty-eventloopgroup项目。基本上,您必须装饰EventLoopGroup.execute@Overridepublicvoidexecute(Runnablerunnable){delegate.execute(n

java - neo4j 直接访问和通过 OGM 之间的显着性能差异

我正在使用插入、更新、删除和查询的简单基准评估Neo4j图形数据库的性能。与通过Neo4j驱动程序直接访问相比,使用Neo4jOGM我发现执行时间明显变慢(大约2-4倍)。例如,在我的机器上,对于10K节点和11K关系,删除操作(参见下面的代码)在500毫秒内完成,而在1200毫秒内完成。我想知道为什么会发生这种情况,特别是因为下面的删除代码甚至没有使用任何节点实体。我可以想象OGM有一些开销,但这似乎太多了。有人知道为什么它变慢了吗?示例节点:publicabstractclassAbstractBaseNode{@GraphId@Index(unique=true)privateL

java - 如何在 log4j 文件名中插入当前 webapp 的文件夹名称

我正在编写一个要在Tomcat中部署的JavaWeb应用程序,并且我正在使用log4j进行日志记录。我喜欢在生成的日志文件的名称中自动插入Web应用程序的文件夹名称。目前log4j.properties中的文件名设置如下所示:log4j.appender.R.File=${catalina.home}/logs/mywebapp.log我需要这样的东西:log4j.appender.R.File=${catalina.home}/logs/${current.webapp.folder}.log是否需要在属性文件中为此指定某种环境变量,或者我必须从代​​码中实例化记录器?

SpringBoot整合Log4j2日志框架

SpringBoot底层默认使用logback日志框架。切换使用Log4j2日志框架。pom.xml配置org.springframework.bootspring-boot-starter-web spring-boot-starter-loggingorg.springframework.bootorg.springframework.bootspring-boot-starter-log4j2log4j2-spring.xml文件命名固定log4j2-spring.xml,让SpringBoot加载配置文件。文件名为log4j2.xml,文件将绕过SpringBoot直接调用日志框架。F