Tag: log4j2

Log4j2覆盖过去的日志文件

我正在使用Log4j2 ver 2.3 log4j2.xml看起来像: 一切正常,直到第二天前一天的日志被当天的某些日志覆盖。 示例:catalina.2018-03-21.log昨天(3月21日)很好,但今天被2018-03-22的一些日志覆盖,当时catalina.2018-03-22.log包含今天(3月22日)的剩余日志) 有什么想法吗?

使用log4j2 API无法在EAR中检测到自定义插件

我正在将一个EAR应用程序从log4j迁移到log4j2 。 我有类在不同的EARjar中扩展appender,filter,布局,现在,我已将它们转换为插件。 这意味着我在多个jar中有自定义插件(假设有3个jar子)。 我没有在log4j2.xml使用packages属性, log4j2.xml使用Dlog4j.configurationFile JVM参数初始化日志系统, Dlog4j.configurationFile JVM参数指向EAR的META-INF的log4j2.xml位置。 在所有三个jar项目中添加以下插件都不起作用。 org.apache.maven.plugins maven-compiler-plugin log4j-plugin-processor compile process-classes only org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor 模式布局:在下面的模式布局中, e是自定义模式,其中编写自定义模式转换器插件以转换此字符串。 %d %-5p [%c{1}] [EventId: %e] [%t] %m%n 用于上述模式布局的自定义转换器插件(在jar1中): jar1在org.apache..文件夹中的META-INF下有Log4J2Plugins.dat文件。 @Plugin(name = “EventPatternConverter”, category = “Converter”) @ConverterKeys({“e”}) public class EventPatternConverter extends LogEventPatternConverter { protected EventPatternConverter(String name, String style) { super(name, style); } public static EventPatternConverter newInstance(String[] options) […]

如何检测丢失的LOG4J2配置?

我希望能够检测到应用程序何时缺少LOG4J2.XML配置文件,并且在这种情况下设置一些其他默认值,而不是LOG4J2。 基本上,如果找不到配置文件,我想运行此代码: // A default configuration that shows ALL Logger output, without a XML config! LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); loggerConfig.setLevel(Level.ALL); ctx.updateLoggers(); // This causes all Loggers to refetch information from their LoggerConfig. 如何检测LOG4J2无法加载配置?

如何仅为特定类配置log4j2.xml日志级别?

在log4j ,可以按package定义日志级别,如下所示: Questin:我怎样才能定义特定类的日志记录? (例如org.springframework.web.servlet.mvc.method.annotation.EndpointHandlerMapping )? 如果我把它放到<logger name属性中,则不再<logger name任何内容。

log4j2 JDBC Appender问题:无法插入记录

我创建了一个JDBC appender并绑定了ColumnConfig和DataSourceConnectionSource。 在尝试在DB中插入记录时(Logger.debug(“Test”))。我得到的是exception。 谢谢 [6/16/14 18:44:58:647 GMT-08:00] 00000024 SystemErr R ERROR StatusLogger An exception occurred processing Appender JDBCAppender org.apache.logging.log4j.core.appender.AppenderLoggingException: Failed to insert record for log event in JDBC manager: DSRA1300E: Feature is not implemented: PreparedStatement.setNString at org.apache.logging.log4j.core.appender.db.jdbc.JDBCDatabaseManager.writeInternal(JDBCDatabaseManager.java:117) at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:159) at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:103) at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97) at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425) at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406) at org.apache.logging.log4j.core.Logger$PrivateConfig.logEvent(Logger.java:275) at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:289) at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:99) at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:43) […]

使用log4j2的多个线程的不同日志文件

我正在运行一个Java应用程序,我在其中调用多个线程,每个线程都有一些唯一的名称。 现在我想为每个日志文件创建多个日志文件,日志文件的名称应该作为线程名称。 这可能是使用log4j2。 请帮我写log4j2配置文件。 先谢谢你。

Android上的Log4j2

我正在尝试在Android Project上使用log4j2(我正在使用Android Studio)。 为了简化这个问题,我将解释我在一个简单的虚拟项目中所做的事情(我在实际项目中得到的错误比在这个虚拟项目中得到的错误)。 我创建了一个带有主要活动的简单虚拟项目。 我添加了log4j2库… 这是gradle: apply plugin: ‘com.android.application’ android { packagingOptions { exclude ‘META-INF/LICENSE’ exclude ‘META-INF/NOTICE’ } compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.example.test20150130” minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) […]

如何为log4j消息添加前缀(在对象级别)

我使用log4j2,我想为我的所有消息添加一个前缀。 此前缀将传递给构造函数参数,它取决于类的实例。 所以我们处于对象级别(不是类或线程)。 例如,我有一个实例化的A类,如new A(152) ,所以当我在这个类上使用log.error(“message”)时,就会在消息之前写入152: log.error(“message”) 对于new A(155) ,将显示155:代替。 谢谢你的帮助

从log4j迁移到log4j2 – 属性文件配置

我有一个java应用程序,它使用如下配置的log4j 。 log4j.properties log4j.rootLogger=INFO, R log4j.appender.R = org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File = /trace.log log4j.appender.R.Append = true log4j.appender.R.DatePattern = ‘.’yyyy-MM-dd log4j.appender.R.layout = org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern = %d{HH:mm:ss} %c{1} [%p] %m%n 我想使用与上面相同的配置迁移到log4j2。 没有找到与log4j2属性配置文件相关的任何内容,因为最近包含了此支持。 请任何人可以帮助我如何使用上面相同的配置我的log4j2.properties文件?

RollingFileAppender如何与log4j2一起使用?

我在正常的log4j上使用RollingFileAppender 。 现在我正在切换到log4j2 ,并且无法使appender工作。 下面的File appender按预期工作。 但是从不创建RollingFile的日志文件。 为什么?