草庐IT

java - ClassCastException : org. slf4j.impl.Log4jLoggerAdapter 无法转换为 ch.qos.logback.classic.Logger

我正在关注this回答以便在运行时添加附加程序。尽管这适用于原始海报,但我在Loggerlogger=(Logger)LoggerFactory.getLogger("abc.xyz");行中得到了这个异常:java.lang.ClassCastException:org.slf4j.impl.Log4jLoggerAdaptercannotbecasttoch.qos.logback.classic.Loggerde.mypackage.controller.MyController.meinOeOrte(MyController.java:335)sun.reflect.Nativ

日志怎么都喜欢用SLF4J

SLF4J,即SimpleLoggingFacadeforJava,是Java日志框架的一个抽象层。它本身并不提供日志的实现,而是为各种日志框架(如log4j、logback、java.util.logging等)提供统一的接口,使开发者可以更方便地更换日志框架而无需修改代码。使用示例使用slf4j时我们需要优先引入其依赖:org.slf4jslf4j-api1.7.36前面说到,Slf4j只是一个日志门面,那么真实使用时我们还需要添加一个该日志的具体的实现,比如slf4j-simple、logback,这里选择slf4j-simple做示例:org.slf4jslf4j-simple1.7.

java - 混合使用 Log4j 和 commons-logging 会导致 "class loading deadlock"?

我想我发现了一种情况,其中log4ja)直接混合使用和b)通过commons-logging混合使用会导致某种类加载死锁。我不确定这种情况是否可能发生(JVM不应该检测到这种情况吗?)以及如何应对。问题在我们的构建系统中,我们目前正在按顺序运行我们的单元测试-为了加快构建速度,我们显然可以更改它以并行运行我们的单元测试。但是,如果我们这样做,某些构建会遇到执行超时。在分析此类“挂起构建”的线程转储时,我们发现自己处于不同的模块中,大部分时间涉及不同的测试。但它总是归结为两个尝试初始化Logger的线程:一个使用Logger.getLogger(直接使用log4j),另一个使用LogFa

java - 使用 log4j 每天创建新的日志文件

我想在我的java项目中使用Log4j,我应该提供哪个配置每天晚上12:00新文件将生成并归档的配置文件名称应该像-output-log-of-MyProjectName-HostName-2013-Dec-10.txt姓名)。我的配置文件是这样的-log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.FILE.File=${log}/log.outlog4j.appender.FILE.DatePattern='.'yyyy-MM-dd-a它每天都在创建新文件,但它会在文件名后附加日期。

java - 如何使用 log4j2.xml 配置 hibernate 日志记录?

我最近切换到Apachelog4j2,但仍然找不到使用log4j2.xml配置hibernate日志记录的方法。因为我找不到解决这个问题的方法,所以我仍然明确地为hibernate使用log4j.properties文件。这不是最佳解决方案,因为我的log4j2.xml使用JPA附加程序(将日志写入数据库)。我不想为hibernate编写单独的逻辑。有没有办法使用log4j2配置hibernate日志记录? 最佳答案 如建议https://issues.apache.org/jira/browse/LOG4J2-172您可以添加系统

java - Log4j 以不同格式记录两次

我不明白为什么log4j以不同的格式追加两次。以前有人遇到过这个吗?这是我的log4j.xml文件:这里是一些示例输出:INFO2016-08-2611:01:38,353[main]com.server.Server-Serverstartedsuccessfully...11:01:38,353INFO:Serverstartedsuccessfully...编辑:当我将“myAppender”appenderthreshold更改为“ERROR”时,显示的第二条日志消息(以时间开头的消息,而不是“INFO”)仍在生成。是否有一些我需要禁用的默认记录器?似乎某些东西仍在记录那些“I

neo4j查询语言Cypher详解(四)--索引

索引维护索引类型:Rangeindex.Lookupindex.Textindex.Pointindex.Full-textindex.Cypher允许在给定标签或关系类型的所有节点或关系的一个或多个属性上创建范围索引:为任何给定的标签或关系类型在单个属性上创建的索引称为单属性索引。为任何给定标签或关系类型在多个属性上创建的索引称为复合索引。复合索引和单属性索引在使用模式上的差异将在复合索引限制中描述。此外,文本索引和点索引是一种单属性索引,它们的限制是只能分别识别字符串和点值的属性。具有索引标签或关系类型的节点或关系(其中索引属性为另一个值类型)不包括在索引中。以下是索引的真实情况:最佳实践

java - Log4J RollingFileAppender 无法滚动文件

我正在用Java编写一个小的xml转换层。我通过web服务接收xml,修改它,然后将修改后的xml发送到另一个系统。然后我等待响应并将响应返回给原始调用者。SystemA->Me->SystemB->Me->SystemA我想记录收到的请求、发送的请求、收到的响应和发送的请求。基本上我想记录图表中每个箭头所在的xml。我的问题是RollingFileAppender。我尝试以10MB滚动,有时会滚动,有时不会滚动。如果滚动几次,然后停止,它将继续将滚动的文件从3重命名为4,从4重命名为5,依此类推。我最好的猜测是,当超过10MB标记时,有多个线程写入日志文件,因此我无法重命名该文件。我

java - 在 Neo4J 中,如何在 Java 的密码查询中将标签设置为参数?

我在Java的Neo4J的密码中遇到参数问题。我运行嵌入式数据库。代码应该是这样的(GraphDB.cypher直接进入ExecutionEngine)HashMapparameter=newHashMap();parameter.put("theLabel1","Group");parameter.put("theRelation","isMemberOf");parameter.put("theLabel2","Person");GraphDB.cypher("MATCH(n1:{theLabel1})-[r:{theRelation}]->(n2:{theLabel2})RETU

java - 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

我有那些具体的要求:需要能够登录FATAL级别需要使用SLF4J需要使用Log4j2现在,这是我的实现:finalLoggerlogger=LoggerFactory.getLogger(HelloWorld.class);finalMarkermarker=MarkerFactory.getMarker("FATAL");logger.error(marker,"!!!FatalWorld!!!");这是我的PatternLayout(在yaml中):PatternLayout:Pattern:"%d{ISO8601_BASIC}%-5level%marker[%t]%logger{