Tag: log4j

spring框架卡在调试日志级别上

我正在尝试通过log4j.xml配置spring框架日志记录级别。 我的文件看起来像这样: <!– –> <!– –> <!– –> 但是,spring正在记录调试信息,这里是catalina.out的示例: 15:46:03.535 [http-bio-8080-exec-3] DEBUG osswumAntPathRequestMatcher – Checking match of request : ‘/oauth/token’; against ‘/oauth/cache_approvals’ 15:46:03.536 [http-bio-8080-exec-3] DEBUG osswumAntPathRequestMatcher – Checking match of request : ‘/oauth/token’; against ‘/oauth/uncache_approvals’ 15:46:03.536 [http-bio-8080-exec-3] DEBUG osswumAntPathRequestMatcher – Checking match of request : ‘/oauth/token’; against ‘/oauth/token’ 15:46:03.536 [http-bio-8080-exec-3] DEBUG ossecurity.web.FilterChainProxy – /oauth/token?grant_type=password&client_id=my-trusted-client-with-secret&client_secret=somesecret&username=seema&password=jrd@123456 at […]

如何使用Log4j创建基于进程的日志文件?

以下是我的课程详情。 ClassA和ClassD是可运行的类。 从ClassA我调用ClassB和ClassC。 package comp1 -> Contains ClassA, ClassB, ClassC package comp2 -> Contains ClassD, ClassE Log for comp1 -> comp1.log Log for comp2 -> comp2.log 我正在使用Log4j进行日志记录。 我有两个基于包名称的记录器。 我从ClassD调用ClassE和ClassB 。 现在, comp1.log包含来自ClassB日志消息, comp1.log包含来自ClassD和ClassE日志。 如何制作基于流程的日志? 如果我运行ClassD那么ClassD , ClassE和ClassB只应该有一个日志文件。 这可能使用Log4j吗?

更新到Java 7后的NoClassDefFoundError

我在执行项目的JAR文件后得到NoClassDefFoundError。 使用Eclipse进行调试工作正常,但每当我使用windows命令java -jar myproject.jar时我都会收到此错误,因为我安装了JDK 1.7。 它使用Java 1.6工作正常。 这是错误日志: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/log4j/Layout at program.Main.main(Main.java:20) Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Layout at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) … 1 more 我搜索了一下,但找不到合适的解决方案。 我已经做了什么:-uninstall Java 1.7,安装1.6而不是在另一台计算机上检查classpath -try(从中卸载Java 1.7之后) – 创建一个空项目,其中一个引用log4j库=>同样的问题 这是classpath文件: 你知道我还应该做什么吗? 谢谢, 尼尔斯 编辑:如果我将项目导出为“可运行的JAR”而不是简单的“JAR”,程序启动但无法使用我正在使用的另一个库(RxtxComm)。 这是我得到的日志: […]

Log4j – 使用DatePattern后文件扩展名(.log)消失

我的Log4j.xml文件有问题。 当我保存这样的日志文件时: 文件没问题,但没有文件扩展名。 这是一个错误还是我做错了什么? 编辑:在我看到保罗的回答之前,我通过使用一个简单的类初始化我的记录器来暂时解决了我的问题。 这不是最好的决定,但它对有类似问题的人有用: public class DomainLogger { private Logger logger = null; public DomainLogger(String directoryName, String fileName) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat(“_dd.MM.yyyy”); String timeNow = sdf.format(new Date()); String fullFilePath = System.getenv(“DOMAIN_HOME”) + directoryName + “\\” + fileName + timeNow + “.log”; System.out.println(“full filepath is ” + fullFilePath); logger = […]

在war文件中为不同的jar子分开日志

我有一个部署在jboss服务器上的war文件。 这场战争包含一些jar文件。 我需要的是为不同的jar子创建单独的日志。 我使用log4j进行日志记录,并在每个jar中集成了log4j属性文件。 我每个jar的log4j都有不同的路径。 日志仍然是在jboss的server.log中生成的。 我需要帮助来为每个jar生成单独的日志。

在log4j中扩展PatternLayout时出现问题

我创建了一个新类NewLinePatternLayout.java,它扩展了log4j的PatternLayout.java。 下面是我的log4j.properties。 log4j.rootLogger=INFO, R log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=${catalina.home}/logs/tomcat.log log4j.appender.R.MaxFileSize=10MB log4j.appender.R.MaxBackupIndex=10 log4j.appender.R.layout=com.myCompany.utils.NewLinePatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c – %m%n 我收到如下错误: log4j:ERROR The class “org.apache.log4j.Layout” was loaded by log4j:ERROR [WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ———-> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@620a3d3b ] whereas object of type log4j:ERROR “com.myCompany.utils.NewLinePatternLayout” was loaded by [org.apache.catalina.loader.StandardClassLoader@620a3d3b]. log4j:ERROR No layout set for the appender named [R]. log4j:ERROR A “com.myCompany.utils.NewLinePatternLayout” […]

加载DOM库时log4j中的冲突? (不允许在classpath中实现dom的其他实现?)

我试图将log4j放在Tomcat 7中的Web应用程序中。 我在我的Web应用程序的WEB-INF\lib中有log4j库。 我在WEB-INF\classes下面有以下log4j.xml 我在例如我知道正在加载的servlet或filter中进行登录但是我无法在任何地方看到输出日志。 例如 Logger log = Logger.getLogger(MyFilter.class); 在doFilter我记录了log.debug(“logging information); log.error(“logging information); 作为控制台appender的结果,我无法在Tomcat控制台中看到输出,也没有看到myLogfile.log创建。 我不确定这个文件应该在哪里创建。 我只看到来自servlet和filter的System.out语句。 我在这做错了什么? 更新: 我在类路径xercesImpl.jar和jaxb-impl.jar 。 这会导致问题吗? 我注意到我之前在Tomcat控制台中错过了以下exception: log4j:WARN在java的java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)的java.lang.ClassLoader.defineClass1(本地方法)中的默认初始化java.lang.NoClassDefFoundError:org / w3c / dom / ElementTraversal期间出错。位于org.apache的org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823)的java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)中的lang.ClassLoader.defineClass(ClassLoader.java:615) .appalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java) :1533)位于org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity的org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(未知来源)的org.apache.xerces.parsers.AbstractDOMParser.startDocument(未知来源)(未知来源)org.apache.xerces.impl.XMLVersionDetector.startDocume 来自org.apache.xerces.parsers.XMLParser.parse的org.apache.xerces.parsers.XML11Configuration.parse(未知来源)的org.apache.xerces.parsers.XML11Configuration.parse(未知来源)的ntParsing(未知来源)(位于org.apache.jache上的org.apache.xerces.parsers.DOMParser.parse(未知来源)org.apache.log4j.xml.DOMConfigurator $ 2.parse(DOMConfigurator)中的未知来源.java:767)org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:866)org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:773)org.apache.log4j。 org.apache.log4j.LogManager。(LogManager.java:127)的helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)位于com.test的org.apache.log4j.Logger.getLogger(Logger.java:117)。 MyFilter。(MyFilter.java:26)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)at sun.re flect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27),位于java.lang.Class的java.lang.Class.newInstance(Class.java:355)java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:125)中的.newInstance(Class.java:308)org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:256)at org。位于org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:103)的apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java) :4624)org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5281)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)org.apache.catalina.core。 ContainerBase.addChildInternal(ContainerBase.java:866)位于org.apache.catalina.core.ContainerBase。 addgild(ContainerBase.java:842)位于org.apache的org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095) .catalina.startup.HostConfig $ DeployDirectory.run(HostConfig.java:1617)java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask) […]

log4j将属性重置为原始文件,如log4j.properties文件中所示

在我的应用程序中,我定义了log4j.properites,如下所示 log4j.appender.email=org.apache.log4j.net.SMTPAppender log4j.appender.email.Subject=email Notification 后来在程序中我动态地将主题改为 Properties prop = new Properties(); prop.setProperty(“log4j.appender.email.Subject”, “Test Completed”); 使用此变量后,我想将其重置为原始文件。 所以我这样做了 LogManager.resetConfiguration(); PropertyConfigurator.configure(prop); 但是,每当我使用这个主题属性时,代码的后面都会将其值作为“Test Completed”。 任何重置配置的建议都非常感谢。 谢谢

多个log4j.properties文件

这似乎不是一个有效的问题,但我在这里有一个要求。 以下是我的项目结构: common (built as a jar) module-1 (war, includes common.jar in its classpath) module-2 (war, includes common.jar in its classpath) module-3 (war, includes common.jar in its classpath) module-4 (war, includes common.jar in its classpath) 部署如下: module-1和module-2位于一个服务器上,module-3位于另一个服务器上,而module-4位于另一个服务器上。 要求是有两个单独的日志文件(每个服务器一个)。 因此,实现此目的的方法是将log4j.properties (绝对具有不同的名称)放在公共模块中,并将所需的属性文件复制到相应服务器的conf文件夹中。 我不确定,如果我可以使用不同名称的日志属性文件,如果可能,请帮助我指明这样做。 编辑为了使这更容易,如果你能告诉我是否可以为log4j.properties文件使用不同的名称以及如何将其加载到服务器,我将能够实现其余的。 谢谢。

Kafka Log4j appender没有发送消息

我是一个新的ot apache Kafka和log4j。 我正在尝试将我的日志消息发送到Kafka。 这是我的log4j属性文件 log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% %m%n log4j.appender.KAFKA=kafka.producer.KafkaLog4jAppender log4j.appender.KAFKA.BrokerList=localhost:9092 log4j.appender.KAFKA.Topic=kfkLogs log4j.appender.KAFKA.SerializerClass=kafka.producer.DefaultStringEncoder log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout log4j.appender.KAFKA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% – %m%n log4j.logger.logGen=DEBUG, KAFKA 但是,我无法在我的消费者中收到任何消息。 我用其他一些生产者代码测试了消费者,它运行正常。 另外,我收到了这个警告 log4j:WARN No such property [serializerClass] in kafka.producer.KafkaLog4jAppender. 编辑 这是生成我的日志消息的代码 package logGen; import org.apache.log4j.Logger; public class TestLog4j { static Logger log = Logger.getLogger(TestLog4j.class.getName()); public […]