log4j是否有一个仅存储日志记录事件列表的附加程序(用于单元测试,以验证没有写入错误日志)? 最佳答案 有一个MemoryAppender,但它不是标准log4j库的一部分。您可以轻松编写自己的代码,但如果您仅将它们用于单元测试,我可能会模拟Logger并断言没有调用它。覆盖目标类中的getLogger()方法或直接在类型上设置模拟Logger。使用Jmock(内存中的例子,如有错误请见谅):publicvoidtestDoFoo(){Mockerymockery=newMockery();LoggermockLogger=moc
我一直在尝试以编程方式配置appender,但到目前为止还没有成功。我只想配置没有文件的附加程序,以便它可以将日志发送到控制台或文件。StringPATTERN="%d[%p|%c|%C{1}]%m%n";PatternLayoutlayout=PatternLayout.createLayout(PATTERN,null,null,null,null,null);ConsoleAppenderconsole=ConsoleAppender.createAppender(layout,null,null,"console","true","true");//createappender
Log4j1.*有一个nullappenderclass,但我在log4j2中找不到等效项。有吗?如何在log4j2.xml中配置一个nullappender? 最佳答案 从Log4j2版本2.7开始,有一个NullAppender类。早期版本没有它。它在配置文件中使用的名称是“Null”。它可以像这样添加到Appenders列表中: 关于java-如何在log4j2中配置nullappender,我们在StackOverflow上找到一个类似的问题: htt
如果我右键单击服务器并在服务器上运行,我的代码工作正常,但是当我尝试将它部署到tomcat上并尝试运行它时,出现以下错误log4j.properties文件:log4j.logger.Controller=INFO,error,stdoutlog4j.logger.Client=INFO,error,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.
我已经在我的Java应用程序中配置了一个SMTPAppender。我只收到ERROR日志类型而不是INFO类型!我更改了LevelMin但什么也没有,我插入了Thresold,但什么也没有!有人有什么建议吗? 最佳答案 SMTPAppender的设计只记录ERROR及以上消息。此级别不受属性影响。附加状态的文档:Bydefault,anemailmessagewillbesentwhenanERRORorhigherseveritymessageisappended.Thetriggeringcriteriacanbemodifie
我在我的应用程序中启用了日志记录,我想通过电子邮件(gmail帐户)发送日志错误。我:建立一个java项目添加activation.jar、log4j.java和mail.jar(java邮件)我将这些库添加到项目类路径我添加了log4j.properties并配置如下:log4j.rootLogger=mainlogger,Email,destlog4j.appender.mainlogger=org.apache.log4j.ConsoleAppenderlog4j.appender.mainlogger.target=System.outlog4j.appender.mainlo
我正在使用Windows2008R2和ApacheTomcat5.5,供您引用。STDOUT和STDERR可以通过ApacheTomcat属性自动记录,通过Logging选项卡->RedirectStdout和RedirectStderror文本框。但是我想通过log4j来控制这个。我正在尝试利用ConsoleAppender和TimeAndSizeRollingAppenderclass翻转通常由ApacheTomcat的固有日志记录控制的内容。基本上,无论Tomcat将stdout和stderr重定向到一个文件,我想使用log4j和log4j.properties文件做同样的事情。
我有一个log4jappender定义如下:log4j.logger.com.example=DEBUG,fileloglog4j.appender.filelog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.filelog.File=c:/app.loglog4j.appender.filelog.layout=org.apache.log4j.PatternLayoutlog4j.appender.filelog.layout.ConversionPattern=%d|%m%nlog4j.appender.file
我有一个看起来像这样的log4j.properties文件:log4j.logger.com.foo=INFO,foo-loglog4j.logger.com.foo.BarImpl=INFO,bar-log通常对于匹配com.foo包结构的类,我希望使用foo-logappender。但是,在该包中,我希望BarImpl日志使用bar-logappender而不是foo-logappender。目前,BarImpl写入的任何日志都由foo-log和bar-log处理(正如预期的那样)。如何让foo-logappender忽略BarImpl类? 最佳答案
我使用log4j1.2.16的RollingFileAppender,它会在日志文件达到一定大小时滚动日志文件。现在我想每天和滚动日志文件,当它们达到一定大小时。因此每天会有一个或多个日志文件。例如,myapp.logmyapp-17.12.2013.logmyapp-16.12.2012.logmyapp-16.12.2012.1.logmyapp-16.12.2012.2.log是否有现成的appender,它已经有了? 最佳答案 确实有两种选择:使用LogBack及其大小和时间触发策略:http://logback.qos.c