Tag: log4j

Log4j不会在JBoss 6 EAP下记录任何内容

我在这个主题上看到了几个问题,但由于它们与错误相关,我不认为这是重复的。 我的问题是我无法登录。我正在JBoss 6 EAP上部署.war,但是也没有记录错误。 在JBoss的/ log文件夹下还有一个名为my .war的文件,但它也是空的。 .war部署罚款和工作。 由于我使用的是Spring,我甚至无法看到它初始化它的上下文。 在Tomcat 7下使用相同的.war进行日志记录。 我创建了一个log4j.xml并将其放在我的WEB-INF / classes目录中(我也在/ WEB-INF中尝试过): 我正在使用log4j 1.2.17,Spring 3.1和JBoss 6 EAP。 任何帮助非常感谢,谢谢

Hibernate 3.4与slf4j和log4j

我正在尝试从Hibernate 3.2升级到3.4,这显然使用了slf4j。 我们的项目目前使用log4j。 所以我的假设是我应该使用slf4j-log4j12包装实现。 Maven slf4j依赖是: org.slf4j slf4j-log4j12 1.5.6 而log4j依赖是: log4j log4j 1.2.15 slf4j-log4j12和log4j都引用了最新版本(我可以在Maven存储库中找到)。 当我运行我的应用程序时,Hibernate的日志记录失败: java.lang.NoSuchFieldError: name at org.slf4j.impl.Log4jLoggerAdapter.(Log4jLoggerAdapter.java:75) at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:75) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:103) at org.hibernate.cfg.Configuration.(Configuration.java:163) … 我错过了什么? 编辑1:如果我从我的pom.xml中删除了log4j依赖项,我收到错误: java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory at org.slf4j.LoggerFactory.(LoggerFactory.java:60) at org.hibernate.cfg.Configuration.(Configuration.java:163) … 编辑2: 此博客声称问题是由使用错误版本的slf4j-api.jar的hibernate注释引起的。

如何使用log4j写入文本文件?

我想知道如何转换以下代码将这些行输出到文本文件,而不是标准输出: import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class HelloWorld { static final Logger logger = Logger.getLogger(HelloWorld.class); public static void main(String[] args) { PropertyConfigurator.configure(“log4j.properties”); logger.debug(“Sample debug message”); logger.info(“Sample info message”); logger.warn(“Sample warn message”); logger.error(“Sample error message”); logger.fatal(“Sample fatal message”); } } 属性文件是: log4j.rootLogger=DEBUG, CA log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.FA.layout.ConversionPattern=%m%n 谢谢。

如何设置log4j属性,以便每个线程输出到自己的日志文件?

我有任何给定时间运行的线程类的多个实例。 我有log4j设置用于日志记录需求。 我需要一种方法来设置log4j,以便我的线程类的每个实例在不同的日志文件中输出其日志。 这是我做的(伪代码) public class doSomething extends Thread { private Logger d_logger; public doSomething(int id){ d_logger = Logger.getLogger(“doSomething”+id); String logFileName = “doSomething”+id+”.log”; Properties prop = new Properties; prop.setProperty(“doSomething”+id,”DEBUG, WORKLOG”); prop.setProperty(“log4j.appender.WORKLOG”,”org.apache.log4j.FileAppender”); prop.setProperty(“log4j.appender.WORKLOG.File”, logFileName); prop.setProperty(“log4j.appender.WORKLOG.layout”,”org.apache.log4j.PatternLayout”); prop.setProperty(“log4j.appender.WORKLOG.layout.ConversionPattern”,”%d %c{1} – %m%n”); prop.setProperty(“log4j.appender.WORKLOG.Threshold”,”INFO”); PropertyConfigurator.configure(prop); } public void run(){ d_logger.info(“Starting to doSomething number” + id); } } 虽然上面为我实例化的每个线程创建了一个文件,但它不会向这些文件输出任何内容。 任何帮助深表感谢。

使用log4j通过SMTPAppender发送电子邮件报告

我正在尝试使用log4j发送包含来自后台进程的日志记录语句的可通过电子邮件发送的报告。 我想为每个进程运行发送一封电子邮件,而不是每封邮件语句都有一封电子邮件。 我查看了SMTPAppender ,但是在进程完成时没有看到手动发送报告的方法。 我相信TriggeringEventEvaluator可能是关键,但我遇到的一个问题是如何获取TriggeringEventEvaluator实例的句柄。 我坚持使用log4j 1.2.14并且在1.2.15中引入了SMTPAppender.getEvaluator()方法。 有什么想法吗? 我是否走在正确的轨道上? SMTPAppender.close()方法是否在这里发挥作用? 我希望能够做到这一点: log.info(message1); log.info(message2); log.info(message3); log.sendMail(); 在考虑了这个之后,我想我需要澄清一下我希望完成的事情。 我正在尝试捕获运行石英作业的日志记录,并将生成的日志作为电子邮件发送。 quartz工作将一堆服务方法调用到各种服务中。 我想要包括那些服务方法执行的任何日志记录以及石英作业本身的日志记录。 我以为我可以做类似以下的事情来捕获所有日志记录,但它不起作用。 // at the beginning of quartz job Logger logger = Logger.getRootLogger(); StringWriter sw = new StringWriter(); WriterAppender wa = new WriterAppender(new SimpleLayout(), sw); logger.addAppender(wa); // at the end of the quartz job String report = […]

使用log4j以编程方式创建不同的日志文件

我有一个自动化集成测试工具,并希望简化日志记录(使用log4j实现) 我有许多高级测试,每个都有一个id,每个测试需要一个单独的日志文件。 由于测试是随机创建的,因此直到运行时才知道ID。 因此,我想确保将每个高级测试中的日志记录写入该测试的日志文件中。 我不想创建自定义日志级别,也不想将日志记录发送到所有appender。 有谁知道这样做的方法?

LOG4J:使用自定义appender修改记录的消息

出于安全原因,我需要查看我的应用程序中的每条记录消息,并可能在它转到日志文件之前对其进行修改。 我想我可以写一个自定义appender(扩展DailyRollingFileAppender)并覆盖subAppend(LoggingEvent事件)。 问题是,LoggingEvent中没有消息文本的setter,消息是私有属性。 我可以使用修改后的消息创建一个新的LoggingEvent,但API不能轻松复制原始LoggingEvent的其余部分。 这一切似乎都旨在阻止在自定义appender中插入消息。 我能看到的唯一另一个选项是修改数百个日志语句来调用一个新的全局方法,该方法可以先修改文本然后进行Log4J调用。 我宁愿不! 有没有其他人需要修改自定义appender中记录的消息?

如何为tomcat设置最大卷数和最大日志大小?

我有空间问题所以需要将catalina.out的大小限制为10M并将滚动次数限制为前3天。 是否可以只配置logging.properties? 谢谢。

请正确初始化log4j系统。 在运行Web服务时

也许看起来很傻,但我很困惑。 我提到了配置Log4j属性,但它似乎没有帮助。 我写了一个简单的Web服务HelloWorld。 在运行它时我得到的错误是这样的: log4j:WARN找不到logger(org.apache.axis.transport.http.AxisServlet)的appender。 log4j:WARN请正确初始化log4j系统。 我不确定为什么会发生这种情况。 我使用Eclipse生成Web服务并部署在Tomcat 6.0中。 我查看了Axis Developer’s Guide并根据它们进行了检查 log4j.configuration = log4j.properties使用此系统属性指定Log4J配置文件的名称。 如果未指定,则默认配置文件为log4j.properties。 在axis.jar中提供了log4j.properties文件。 我没有在axis.jar找到log4j.properties。 对此有何帮助?

每次使用log4j运行一个日志文件

如何将log4j.properties配置为每次运行应用程序时只有一个日志文件。 我已经读过你应该在文件名中使用时间戳,但随着时间的推移,每次运行会创建许多文件。 我尝试过DailyRollingFileAppender和RollingFileAppender但是找不到一种方法来为每次运行配置一个日志。 不应将日志分成多个日志,也不应截断日志,应保留旧运行的文件。 每个类都有一个静态的org.slf4j.Logger,它有自己的类名: private static final Logger log = LoggerFactory.getLogger(Foo.class); 这是我当前的log4j.properties log4j.rootLogger=error, RootAppender, RootErrorAppender #log4j.logger.com.example=info, qspaBackendAppender, stderr log4j.logger.com.example=info, qspaBackendAppender log4j.additivity.com.example=true #log4j.logger.com.example.util=trace, qspaBackendAppender, stderr #log4j.additivity.com.example.util=true log4j.appender.qspaBackendAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.qspaBackendAppender.file=logs/qspaBackend.log log4j.appender.qspaBackendAppender.layout=org.apache.log4j.PatternLayout log4j.appender.qspaBackendAppender.layout.ConversionPattern= %-5p : %C{1} %c{2} : %m%n log4j.appender.stderr=org.apache.log4j.ConsoleAppender log4j.appender.stderr.Target=System.err log4j.appender.stderr.layout=org.apache.log4j.PatternLayout log4j.appender.stderr.layout.ConversionPattern=%-5p %c{1}:%L – %m%n log4j.appender.RootAppender=org.apache.log4j.RollingFileAppender log4j.appender.RootAppender.file=logs/root.log log4j.appender.RootAppender.layout=org.apache.log4j.PatternLayout log4j.appender.RootAppender.layout.ConversionPattern= %-5p : %C{1} %c{2} : %m%n log4j.appender.RootErrorAppender=org.apache.log4j.RollingFileAppender log4j.appender.RootErrorAppender.file=logs/rootError.log […]