Tag: log4j

错误:使用log4j时“setFile(null,false)调用失败”

我在项目的源文件夹中添加了log4j.properties文件,但我仍然收到log4j:错误。 这是我的Log4j.properties文件: .rootCategory=DEBUG, R, O # Stdout log4j.appender.O=org.apache.log4j.ConsoleAppender log4j.appender.O=log44j.log # File log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=log4j.log # Control the maximum log file size log4j.appender.R.MaxFileSize=100KB # Archive log files (one backup file here) log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.O.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x – %C.%M(%F:%L) – %m%n log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x – %C.%M(%F:%L) – %m%n # Define the root logger with appender file logDir = ../logs log4j.rootLogger = […]

Log4J自定义字段

介绍: 我正在尝试使用log4j获取其他字段,并且它的工作正常但只有当我在代码中而不是在log4j.properties中创建一个appender时 进展: 使用本文为log4j 1.1.3 添加转换字符到PatternLayout 为log4j 1.2制作了一个示例应用程序 问题: 使用属性文件,它将运行但不会使用AppServerPatternLayout,因此不会显示自定义字段。 下载代码 customlog.properties log4j.rootLogger=FATAL log4j.logger.some.log=INFO,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=logging.AppServerPatternLayout log4j.appender.stdout.layout.ConversionPattern=—————–using log file————————%nTime: %d%nHost: %h%nServer: %s%nComponent: %b%nVersion: %v%nPriority: %p%nThread Id: %t%nContext: %x%nMessage: %m%n 没有log4j属性文件的Main.java日志记录 AppServerLoggerFactory factory; factory = new AppServerLoggerFactory(“MyServer”, “MyComponent”, “1.0”); AppServerLogger.setFactory(factory); Logger logger = AppServerLogger.getLogger(“some.log”); PatternLayout layout = new AppServerPatternLayout( formatString ); logger.addAppender( new ConsoleAppender(layout) ); logger.info(“Hello”); […]

如何使用多个类的log4j?

我目前正在用java编写一个大项目,有很多类,有些类很小,只用很少的方法代表对象。 我的主类中有一个记录器,它工作正常。 我希望能够只使用一个记录器(带一个控制台appender)和所有类。 我试图将对记录器的引用传递给不同的类,但它看起来不正确。 此外,有时候我在没有运行main的情况下对类运行测试,因此没有为其他类初始化记录器。 实现这一目标的最佳方法是什么,我的意思是,如何从不同的类登录到一个日志,类之间没有硬依赖关系,并且能够独立地使用每个类的日志?

使用log4j将日志发送到Java中的Web服务

我是Web服务世界的新手,但对log4j有所了解。 我需要实现一个function,它将日志消息发送到Web服务,而不是使用Web服务appender发送到文件。 我通过在Google上搜索WebServiceAppender是log4j类之一来阅读,但我无法validation这一点。 log4j.appender.CONSOLE=main.WSAppender log4j.appender.CONSOLE.endpoint=http://localhost:8080/Logging/services/logging?w‌​sdl log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%p [%t] %c{2} (%M:%L) :: %m%n WSAppender.java extends AppenderSkeleton, can’t resolve endpoint, hostname in append() if (endpoint == null) { System.out.println(“no endpoint set. Check configuration file”); System.out.println(“[” + hostname + “] ” + this.layout.format(event)); return; }

自定义位置中的Log4j属性

我正在使用Apache Commons Logging和SLF4J和log4j,但我也想在conf / log4.properties这样的自定义位置使用log4j.properties。 这是问题所在: 如果我使用 PropertyConfigurator.configure(“conf/log4j.properties”); 然后我的应用程序绑定到log4j并且失败了拥有ACL和SLF4J的目的。 如果没有应用程序知道日志记录实现是什么,配置它的最佳方法是什么?

如何在Log4j中根据时间而不是大小来旋转日志文件?

我使用Log4j和RollingFileAppender根据大小创建日志轮换。 如何将其配置为在旋转前记录每个文件一段时间 ? 例如,每个日志文件包含一小时的日志,在每小时的顶部旋转? 我使用Properties对象以编程方式在Java中配置Log4j(而不是log4j.properties文件)

log4j在哪里/如何查找log4j.properties文件?

我正在一个简单的测试应用程序中尝试log4j。 我在eclipse中创建了一个新的Java项目,并将log4j JAR(v1.2.16)添加到我的构建路径中。 然后我创建一个打印Hello World的简单类。 然后我使用log4j Logger类来记录信息消息。 当我运行应用程序时,我看到了日志消息,使用我认为是默认的appender和布局。 大。 我遇到的麻烦是添加我自己的配置。 这就是我所做的: 创建了一个带有自定义appender和日志级别的log4j.properties文件,并将其放入src文件夹(在编译时将其复制到bin文件夹中)。 运行应用程序 – 没有变化。 我尝试添加PropertyConfigurator.configure(“log4j.properties”) 。 运行应用程序 – 没有变化。 没有错误,但没有变化。 我需要做什么才能让log4j加载我的配置文件?

如果我们将它与slf4j api一起使用,我们可以使用log4j2的所有function吗?

我们已经迁移了所有代码以使用slf4 API来使用通用API,但是现在我们正在考虑从log4j 1.x升级到log4j 2.x. 如果我们使用slf4j API和log4j2作为实现,我们是否能够使用log4j2的所有function?

Log4j输出未在Eclipse控制台中显示

出于某种原因,当我运行JUnit测试时,我的Eclipse控制台不再显示Log4j INFO和DEBUG语句。 在代码方面没有任何变化,所以它必须与Eclipse配置有关。 我在unit testing中所做的就是以下内容,由于某种原因,只有ERROR语句显示在Eclipse控制台中。 为什么? 我在哪里寻找线索? public class SampleTest { private static final Logger LOGGER = Logger.getLogger(SampleTest.class); @Before public void init() throws Exception { // Log4J junit configuration. BasicConfigurator.configure(); LOGGER.info(“INFO TEST”); LOGGER.debug(“DEBUG TEST”); LOGGER.error(“ERROR TEST”); } } 细节: 的log4j-1.2.6.jar junit-4.6.jar Eclipse IDE for Java Developers,Version:Helios Release,Build id:20100617-1415

为什么我的应用程序级别日志在oozie中执行时会消失?

我在CDH5环境中使用oozie。 我也在使用oozie网络控制台。 我无法从我的应用程序中看到任何日志。 我可以看到hadoop日志,火花日志等; 但我看不到特定于应用程序的日志。 在我的应用程序中,我已经包含了src / main / resources / log4j.properties # Root logger option log4j.rootLogger=INFO, stdout # Direct log messages to stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out 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 在我的oozie工作流程中,我有java-actions和spark-actions。 同样重要的是要注意,当我从命令行运行我的应用程序时,我会看到我的应用程序级别日志。