问题内容: Log4j的默认初始化通过查找和使用URL进行配置的过程。然后,您如何找出最终使用的URL,而不必自己编写相同的过程?(如果您必须自己编写代码,则可能无法获得与log4j完全相同的代码,并且在将来的发行版中它可能会更改。) 问题答案: 如果您愿意使用AspectJ LTW(加载时编织),则可以看看Ian Roberts提到的静态初始化。在 log4j 1.2.14中, 它看起来像这样:
问题内容: 在IDE中进行开发时,跟踪和调试日志可能会有所帮助,但是在构建期间,我发现这些行非常令人不安,并且混淆了maven或其他构建工具打印的报告。 让log4j尊重系统属性(如1)以与maven一起使用或不需要对项目文件进行更改的东西会很好。我知道我可以指定 2,但我想在这里询问是否有人在构建过程中找到了一种更智能的方法来禁用日志记录,而手动干预最少。即,一些将maven检测为调用方的jav
问题内容: 我正在开发一个通过Commons使用Log4J的项目。 我正在尝试找到日志文件的路径,但是没有找到合适的方法来从Logger返回日志文件的路径。 有人尝试过吗? 问题答案: 您必须 从根记录器 获取所有附加程序,然后获取日志文件的名称。
问题内容: 我构建了一个在我的本地主机(tomcat)中运行良好的webapp。但是,当我尝试部署时,init()中的速度崩溃了,这给我留下了这个奇怪的堆栈跟踪信息(抱歉,大小不一): 有谁知道解决方法?或至少了解错误?我做了一些谷歌搜索,但没有任何线索。.仅此页面面临相同的问题,但没有解决方案.. 问题答案: 我认为这行有答案。似乎在创建velocity.log文件时出现问题。您的配置文件是什么
问题内容: log4j vs和有什么区别?为什么我要用另一节? 问题答案: 阅读http://www.mail- archive.com/log4j-user@logging.apache.org/msg08183.html DailyRollingFileAppender-根据dateFormat旋转 RollingFileAppender-根据最大文件大小旋转。 还要检查: http://lo
问题内容: 我不确定Socket Appender的工作方式。我知道日志记录事件已发送到特定端口。然后,我们可以在控制台上打印日志或放入文件中。 我的问题更多是关于日志的发送方式。是否有一个队列?是同步还是异步?使用它会减慢我的程序速度吗? 我在这里找到了一些信息,但我不清楚。 问题答案: 从SocketAppender文档 日志事件由本机TCP实现自动缓冲。这意味着,如果到服务器的链接速度较慢,
问题内容: 我们知道可以通过其属性/配置文件来配置log4j以关闭特定位置(Java中的类或包)的日志。我的问题如下: log4j对这些标志实际做什么? log4j中的log语句是否仍被调用,但由于该标志而没有被写入文件或控制台?这样仍然会对性能产生影响吗? 是否像C ++中的#ifdef在编译时生效,然后可以限制性能影响? 谢谢, 问题答案: 是的,日志语句仍将执行。这就是为什么最好先检查日志级
问题内容: 只有一个文件。并且它是在Web应用程序副本运行时同时编写的。 如何仅从其他日志行中过滤一个会话日志消息? 问题答案: 我所见过的最好的方法是将Servlet筛选器与NDC或MDC信息一起使用。可以在http://wiki.apache.org/logging- log4j/NDCvsMDC 上对两者进行快速比较。 我发现MDC过去对我来说效果更好。请记住,您将需要更新log4j属性文件
问题内容: 在我可以设置例如 是否有任何符号(%something)以毫秒为单位返回当前时间? 问题答案: 没有完全符合您需要的Log4J符号。 以给定的模式返回当前日期,该模式由(放在方括号之间的模式)定义,但是没有给您以毫秒为单位的时间。 给出自 执行开始以来的 毫秒数。 实现所需目标的一种可能方法是扩展Log4j的行为,这要复杂得多,但是如果绝对必要,请按以下步骤进行: 自定义log4j(编
问题内容: 我正在开发GWT应用程序。它使用RPC从内部系统收集信息。它是通过使用一个库jar来实现的,我们称其为alpha.jar。我们在许多应用程序中都使用了这个jar,因此它可以正常工作,并且在日食之外使用ANT构建。 alpha.jar中的某些类引用了LOG4J2,还引用了许多其他外部jar,因此, 当我们运行应用程序时,我们将类路径传递给所有这些类,并且一切正常 。请注意,这不是一个简单
问题内容: 我已经将我的log4j2自定义插件打包到一个单独的jar中(仅包含插件类),并将其放在应用程序类路径中。但是不会被检测到。 我用谷歌搜索发现它是一个错误-“ packages”参数不再使用。还有一些链接建议了一些替代方案,其中将maven pom.xml和log4j2插件dat文件放入上下文中。问题是我不熟悉Maven,并且不知道如何生成dat文件。我只知道它包含在log4j-2.1-
问题内容: 是否可以指定log4j将使用的时区?我需要日志文件中的日期与应用程序的日期不同。log4j的使用。不幸的是,似乎没有一种通过模式字符串来控制时区的方法(有方法,但这无济于事)。 我查看了log4j的来源,并在中对其进行了实例化。不幸的是,没有一个简单的方法可以控制时区。 问题答案: 如果在类路径上使用Log4J extras JAR文件,则EnhancedPatternLayout类支
问题内容: 我在加密/解密由log4j的RollingFileAppender生成的日志文件时遇到问题。对于加密,我尝试扩展RollingFileAppender,将其命名为EncryptedRollingFileAppender。我重写方法 基本上,我使用CipherOutputStream和Base64OutputStream加密和编码写入输出流的所有内容。这是代码的一部分: 然后我用以下代码
问题内容: 我是Java的新手,刚开始弄清类加载器的概念。现在,关于线程上下文类加载器的使用,log4j出现了一些问题。 我收到以下错误: 我的应用程序大致以这种方式工作:在初始化URLClassLoader#1时,它会构建并加载一些类,这些类使用log4j。稍后在URLClassLoader#2上进行构造(其父类为URLClassLoader#1)并加载更多类,这些类也使用log4j。当使用UR
问题内容: 我想知道如何将以下代码转换为将这些行输出到文本文件,而不是标准输出: 该属性文件是: 谢谢。 问题答案: 将ConsoleAppender更改为FileAppender。 我发现 有用。如果使用此选项,则必须为fileName添加一个属性,并且可能还要设置maxFileSize。这是一个示例(将它们放在log4j.properties文件中): 还有其他附加程序。 根据时间滚动。 不滚