Tag: log4j

在log4j中使用MDC动态命名日志文件

是否有可能在运行时使用MDC命名日志文件。 我有一个Web应用程序,使用tomcat docbase同时使用不同的名称调用。 所以我需要为每个文件都有单独的日志文件。

Log4j2:如何将日志写入每个用户的单独文件?

这是我面临的挑战: 我有一个servlet程序。 我需要将每个用户的日志写入以该用户命名的文件夹。 像这样的东西: // stores message to David folder // /root_path/David/logfile.log logger.error(MarkerManager.getMarker(“David”), “Error happened”); // stores message to Mark folder // /root_path/Mark/logfile.log logger.error(MarkerManager.getMarker(“Mark”), “Something is broken”); 在我的例子中,我使用了标记。 但我真的不知道标记是否适合这项任务。 一般来说,我的appender应该像RollingRandomAccessFile appender一样。 我想apppen for appender必须看起来像这样: 有任何想法吗?

Log4j config – 不同的日志到不同的文件

对于一些人来说,这可能是一个非常简单的问题,但我个人认为Log4j配置是噩梦般困难,并且学习进行脑部手术可能不那么具有挑战性。 我正在尝试将多个记录器记录到不同的文件中。 这是我在log4j.properties文件中的内容: # Root logger option log4j.rootLogger=INFO, file, admin # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=/home/nick/logging/file.log log4j.appender.file.MaxFileSize=1MB log4j.appender.file.MaxBackupIndex=1 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} – %m%n log4j.appender.admin=org.apache.log4j.RollingFileAppender log4j.appender.admin.File=/home/nick/logging/admin.log log4j.appender.admin.MaxFileSize=1MB log4j.appender.admin.MaxBackupIndex=1 log4j.appender.admin.layout=org.apache.log4j.PatternLayout log4j.appender.admin.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} – %m%n 这是我用来测试配置的(非常简单的)Java应用程序: public static void main(String[] args) throws Exception { Properties resource = new Properties(); InputStream […]

在spring用AOP记录?

我是新来的,在我的办公室里。 所以我没有指导。 我需要使用log4j使用AOP实现日志记录。 我在基本的spring MVC示例中实现了没有AOP的日志记录? 在没有记录的aspectJ下使用aspectJ在AOP做了小样本(刚刚制作了Sysout )? 我不知道如何整合它? 任何人都可以给我一个启动想法吗? 肯定赞赏好的答案……

指定log4j日期的时区

是否可以指定log4j将使用的时区? 我需要日志文件中的日期与应用程序的时区不同。 log4j的PatternLayout使用SimpleDateFormat 。 不幸的是,似乎没有办法通过模式字符串控制SimpleDateFormat的时区( DateFormat有setTimeZone方法,但这没有帮助)。 我查看了log4j的源代码,并且在PatternParser.finalizeConverter中正在使用SimpleDateFormat 。 不幸的是,没有一种简单的方法来保持DateFormat来设置时区。

log4j和线程上下文类加载器

我是Java的新手,刚刚开始弄清楚类加载器的概念。 现在我对log4j有一些关于它使用线程上下文类加载器的问题。 我收到以下错误: A “org.apache.log4j.ConsoleAppender” object is not assignable to a “org.apache.log4j.Appender” variable. The class “org.apache.log4j.Appender” was loaded by [java.net.URLClassLoader@105691e] whereas object of type “org.apache.log4j.ConsoleAppender” was loaded by [sun.misc.Launcher$AppClassLoader@16930e2]. Could not instantiate appender named “CONSOLE”. A “org.apache.log4j.ConsoleAppender” object is not assignable to a “org.apache.log4j.Appender” variable. The class “org.apache.log4j.Appender” was loaded by [java.net.URLClassLoader@105691e] whereas object of […]

如何配置log4j文件appender,每15分钟滚动一次日志文件

我知道我可以使用DailyRollingFileAppender每月,每天,每半天,每小时或每分钟滚动日志文件。 但是如何配置log4j每15分钟滚动一次日志文件。 如果配置无法做到这一点,请建议/指导我如何扩展log4j的文件appender来实现这一点。 感谢致敬。

Log4j挂起我的应用程序我做错了什么?

首先介绍一下应用程序的背景。 我有一个应用程序通过线程池并行处理许多独立的任务。 线程池现在挂起了。 以下是我的线程转储的片段,pool-2中的所有线程都被“pool-2-thread-78”阻塞。 它似乎被锁定试图写入控制台,我觉得非常奇怪。 任何人都可以为我阐明情况吗? 编辑 :平台详细信息java版“1.6.0_07”Java(TM)SE运行时环境(版本1.6.0_07-b06)Java HotSpot(TM)客户端VM(版本10.0-b23,混合模式,共享) Ubuntu Linux服务器双核四核机。 它似乎在写入printstream时锁定,我考虑过只删除控制台appender然而我宁愿知道它为什么阻塞并根据这些知识删除它。 在过去删除,看看它是否有效已经回来咬我:) 我的log4j中的相关部分 log4j.rootLogger = DEBUG,STDOUT log4j.logger.com.blah = INFO,LOG log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender log4j.appender.LOG = org.apache.log4j.FileAppender 线程转储提取 “pool-2-thread-79”Id = 149 BLOCKED org.apache.log4j.spi.RootLogger@6c3ba437由“pool-2-thread-78”Id = 148所拥有org.apache.log4j.Category.callAppenders( Category.java:201)org.apache.log4j.Category.forcedLog(Category.java:388)atg.apache.log4j.Category.error(Category.java:302)at com.blah.MessageProcessTask.run(MessageProcessTask .java:103)at java.util.concurrent.Executors $ runnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask / java:268)at java.util.concurrent。 FutureTask.run(FutureTask / java:54)java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:885)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:907)at java .lang.Thread.run(Thread.java:619) […]

JSch记录器 – 我在哪里可以配置级别

如何配置JSch记录器的级别? 是否可以通过XML配置Log4J?

Log4j2:动态创建多个日志的日志文件

我目前正在创建一个可以拥有模块的系统(将它们视为插件),其中每个模块都可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但我似乎在使用文件appender时遇到了一些问题。 主项目(模块加载器和整个事物的“核心”)应该有自己的日志文件,而模块应该有自己的(如mod_XXXXXXXX.log )。 通过阅读有关appender的文档,我发现了FileAppender类,我打算使用它。 直到我发现我不能简单地将appender添加到LogManager.getLog()创建的默认记录器中。 LogManager返回的记录器是与Logger接口不同的记录Logger 。 即使搜索没有给我任何近乎解决方案,我发现只是xml配置中的预定义文件日志 – 这不是我想要的。 谢谢你的阅读; 即使是最轻微的线索也欢迎:)