mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-01 14:41:46 +00:00
ACS-3160 Replace Reload4j with Log4j2 (#1204)
* [ACS-3160] replace reload4j with log4j2 * [ACS-3160] refactor log4j version in pom.xml files * ACS-3160 Add log4j2.properties file * [ACS-3160] convert log4jHierarchyInit properties * ACS-3222 Generate log4j2 rolling file in the Tomcat logs directory * ACS-3160 Fix reconfiguration in Log4JHierarchyInit * [ACS-3160] change loggers from log4j2 to slf4j (where possible) * ACS-3160 Load a set of augmenting/overriding log4j2.properties files * ACS-3160 Fix CheckRequiredClassesForLoggingConsoleUnitTest (adjust to log4j2) * ACS-3160 Enable CheckRequiredClassesForLoggingConsoleUnitTest * [ACS-3160] add appender util class * [ACS-3160] fix removeAbstractAppenderFromLogger * ACS-3160 Upgrade Log4j2 and Slf4j2 versions to the latest * ACS-3160 Temporarily remove AOS for test purposes [tas][db] * [ACS-3160] remove setting level from removeAbstractAppenderFromLogger * ACS-3160 Remove references to SanitizingPatternLayout [tas] * ACS-3892 Migrate ags-community-repo AMP to Log4j2 * ACS-3892 Reduce log4j-core scope to test * ACS-3160 Update the aos-module version to 1.5.0-DEV-LOG4J2 [tas][db] * [ACS-3924] upgrade greenmail version * [ACS-3924] remove exclusion from greenmail * ACS-3160 Fix NDC * ACS-3160 Revert the NDC_REF * ACS-3160 Test with googledrive with Log4j2 * ACS-3160 Log4j references cleanup Co-authored-by: Domenico Sibilio <domenicosibilio@gmail.com> Co-authored-by: Damian.Ujma@hyland.com <Damian.Ujma@hyland.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* #%L
|
||||
* Alfresco Repository
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2021 Alfresco Software Limited
|
||||
* Copyright (C) 2005 - 2022 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
@@ -47,8 +47,9 @@ import org.alfresco.util.TestHelper;
|
||||
import org.alfresco.util.testing.category.DBTests;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.core.config.Configurator;
|
||||
import org.junit.experimental.categories.Category;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
@@ -389,8 +390,8 @@ public class JobLockServiceTest extends TestCase
|
||||
public synchronized void testLockCallbackReleaseSelf() throws Exception
|
||||
{
|
||||
// ACE-4347 extra debug logging just for this test so we can see what's going on when it next fails
|
||||
Level saveLogLevel = Logger.getLogger("org.alfresco.repo.lock").getLevel();
|
||||
Logger.getLogger("org.alfresco.repo.lock").setLevel(Level.ALL);
|
||||
Level saveLogLevel = LogManager.getLogger("org.alfresco.repo.lock").getLevel();
|
||||
Configurator.setLevel(LogManager.getLogger("org.alfresco.repo.lock"), Level.ALL);
|
||||
try
|
||||
{
|
||||
final QName lockQName = QName.createQName(NAMESPACE, getName());
|
||||
@@ -444,7 +445,7 @@ public class JobLockServiceTest extends TestCase
|
||||
}
|
||||
finally
|
||||
{
|
||||
Logger.getLogger("org.alfresco.repo.lock").setLevel(saveLogLevel);
|
||||
Configurator.setLevel(LogManager.getLogger("org.alfresco.repo.lock"), saveLogLevel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -520,8 +521,8 @@ public class JobLockServiceTest extends TestCase
|
||||
public void runGetLockWithCallback(int t)
|
||||
{
|
||||
// ACE-4347 extra debug logging just for this test so we can see what's going on when it next fails
|
||||
Level saveLogLevel = Logger.getLogger("org.alfresco.repo.lock").getLevel();
|
||||
Logger.getLogger("org.alfresco.repo.lock").setLevel(Level.ALL);
|
||||
Level saveLogLevel = LogManager.getLogger("org.alfresco.repo.lock").getLevel();
|
||||
Configurator.setLevel(LogManager.getLogger("org.alfresco.repo.lock"), Level.ALL);
|
||||
|
||||
logger.debug("runGetLockWithCallback "+t+
|
||||
"\n----------------------------------------"+
|
||||
@@ -618,7 +619,7 @@ public class JobLockServiceTest extends TestCase
|
||||
|
||||
logger.debug("runGetLockWithCallback\n----------------------------------------");
|
||||
|
||||
Logger.getLogger("org.alfresco.repo.lock").setLevel(saveLogLevel);
|
||||
Configurator.setLevel(LogManager.getLogger("org.alfresco.repo.lock"), saveLogLevel);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* #%L
|
||||
* Alfresco Repository
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2021 Alfresco Software Limited
|
||||
* Copyright (C) 2005 - 2022 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
@@ -30,7 +30,7 @@ import org.junit.Test;
|
||||
|
||||
public class CheckRequiredClassesForLoggingConsoleUnitTest extends TestCase
|
||||
{
|
||||
private static final String CLASS_NAME = "org.apache.log4j.jmx.HierarchyDynamicMBean";
|
||||
private static final String CLASS_NAME = "org.apache.logging.log4j.core.jmx.Server";
|
||||
|
||||
@Test
|
||||
public void testRequiredClassIsOnAClasspath() throws ClassNotFoundException
|
||||
|
@@ -81,10 +81,12 @@ import org.alfresco.util.GUID;
|
||||
import org.alfresco.util.TempFileProvider;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.log4j.AppenderSkeleton;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.spi.LoggingEvent;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.core.LogEvent;
|
||||
import org.apache.logging.log4j.core.appender.AbstractAppender;
|
||||
import org.apache.logging.log4j.core.config.plugins.Plugin;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
@@ -107,6 +109,7 @@ import static org.alfresco.repo.rendition2.TestSynchronousTransformClient.TEST_F
|
||||
import static org.alfresco.repo.rendition2.TestSynchronousTransformClient.TEST_LONG_RUNNING_MIME_TYPE;
|
||||
import static org.alfresco.repo.rendition2.TestSynchronousTransformClient.TEST_LONG_RUNNING_PROPERTY_VALUE;
|
||||
import static org.alfresco.repo.rendition2.TestSynchronousTransformClient.TEST_LONG_RUNNING_TRANSFORM_TIME;
|
||||
import static org.alfresco.util.log4j.Log4jAppenderUtil.addAbstractAppenderToLogger;
|
||||
|
||||
/**
|
||||
* Thumbnail service implementation unit test
|
||||
@@ -709,19 +712,19 @@ public class ThumbnailServiceImplTest extends BaseAlfrescoSpringTest
|
||||
*
|
||||
* That is useful if you need to use the log output for your tests.
|
||||
*/
|
||||
private class LogErrorAppender extends AppenderSkeleton
|
||||
@Plugin (name = "LogErrorAppender", category = "Core")
|
||||
private class LogErrorAppender extends AbstractAppender
|
||||
{
|
||||
|
||||
private final List<LoggingEvent> log = new ArrayList<LoggingEvent>();
|
||||
private final List<LogEvent> log = new ArrayList<LogEvent>();
|
||||
|
||||
@Override
|
||||
public boolean requiresLayout()
|
||||
protected LogErrorAppender()
|
||||
{
|
||||
return false;
|
||||
super("LogErrorAppender", null, null, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void append(final LoggingEvent loggingEvent)
|
||||
public void append(final LogEvent loggingEvent)
|
||||
{
|
||||
if(loggingEvent.getLevel() == Level.ERROR)
|
||||
{
|
||||
@@ -729,14 +732,9 @@ public class ThumbnailServiceImplTest extends BaseAlfrescoSpringTest
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close()
|
||||
public List<LogEvent> getLog()
|
||||
{
|
||||
}
|
||||
|
||||
public List<LoggingEvent> getLog()
|
||||
{
|
||||
return new ArrayList<LoggingEvent>(log);
|
||||
return new ArrayList<LogEvent>(log);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -750,7 +748,9 @@ public class ThumbnailServiceImplTest extends BaseAlfrescoSpringTest
|
||||
{
|
||||
// Add the log appender to the root logger
|
||||
LogErrorAppender logErrorAppender = new LogErrorAppender();
|
||||
Logger.getRootLogger().addAppender(logErrorAppender);
|
||||
Logger rootLogger = LogManager.getRootLogger();
|
||||
|
||||
addAbstractAppenderToLogger(logErrorAppender, rootLogger);
|
||||
|
||||
// create content node for thumbnail node
|
||||
NodeRef pdfOrig = createOriginalContent(folder, MimetypeMap.MIMETYPE_PDF);
|
||||
|
@@ -40,8 +40,8 @@ import org.alfresco.transform.config.TransformOptionValue;
|
||||
import org.alfresco.transform.config.Transformer;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.core.config.Configurator;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mock;
|
||||
@@ -217,7 +217,7 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryMo
|
||||
initTestData();
|
||||
|
||||
super.setUp();
|
||||
LogManager.getLogger(LocalTransformServiceRegistryConfigTest.class).setLevel(Level.DEBUG);
|
||||
Configurator.setLevel(LocalTransformServiceRegistryConfigTest.class, Level.DEBUG);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Repository
|
||||
* %%
|
||||
* Copyright (C) 2022 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
package org.alfresco.util.log4j;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.core.LoggerContext;
|
||||
import org.apache.logging.log4j.core.appender.AbstractAppender;
|
||||
import org.apache.logging.log4j.core.config.Configuration;
|
||||
import org.apache.logging.log4j.core.config.Configurator;
|
||||
import org.apache.logging.log4j.core.config.LoggerConfig;
|
||||
|
||||
/**
|
||||
* A utility class to work with log4j2 Appenders in test mode.
|
||||
*
|
||||
* @author Aleksandra Onych
|
||||
*/
|
||||
public class Log4jAppenderUtil
|
||||
{
|
||||
public static void addAbstractAppenderToLogger(AbstractAppender appender, Logger logger)
|
||||
{
|
||||
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
final Configuration config = ctx.getConfiguration();
|
||||
appender.start();
|
||||
LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName());
|
||||
loggerConfig.addAppender(appender, null, null);
|
||||
ctx.updateLoggers();
|
||||
}
|
||||
|
||||
public static void removeAbstractAppenderFromLogger(AbstractAppender appender, Logger logger)
|
||||
{
|
||||
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
final Configuration config = ctx.getConfiguration();
|
||||
appender.stop();
|
||||
LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName());
|
||||
loggerConfig.removeAppender(appender.getName());
|
||||
ctx.updateLoggers();
|
||||
|
||||
appender = null;
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
## Test to see that Log4J additions are picked up
|
||||
log4j.logger.org.alfresco.repo.model.filefolder.FileFolderPerformanceTester=DEBUG, consoleAppender
|
||||
log4j.logger.org.alfresco.repo.admin.Log4JHierarchyInitTest=DEBUG, consoleAppender
|
||||
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
|
11
repository/src/test/resources/log4j/custom-log4j2.properties
Normal file
11
repository/src/test/resources/log4j/custom-log4j2.properties
Normal file
@@ -0,0 +1,11 @@
|
||||
## Test to see that Log4J additions are picked up
|
||||
logger.alfresco-repo-model-filefolder-FileFolderPerformanceTester.name=org.alfresco.repo.model.filefolder.FileFolderPerformanceTester
|
||||
logger.alfresco-repo-model-filefolder-FileFolderPerformanceTester.level=DEBUG
|
||||
logger.alfresco-repo-model-filefolder-FileFolderPerformanceTester.appenderRef.stdout.ref=consoleAppender
|
||||
logger.alfresco-repo-admin-Log4JHierarchyInitTest.name=org.alfresco.repo.admin.Log4JHierarchyInitTest
|
||||
logger.alfresco-repo-admin-Log4JHierarchyInitTest.level=DEBUG
|
||||
logger.alfresco-repo-admin-Log4JHierarchyInitTest.appenderRef.stdout.ref=consoleAppender
|
||||
|
||||
appender.console.type=Console
|
||||
appender.console.name=ConsoleAppender
|
||||
appender.console.layout.type=PatternLayout
|
@@ -8,8 +8,8 @@
|
||||
<property name="extraLog4jUrls">
|
||||
<list>
|
||||
<!-- Uses 'test-resources' folder, which is on the classpath -->
|
||||
<value>classpath*:log4j/custom-log4j.properties</value>
|
||||
<value>classpath*:log4j/log4j.properties</value>
|
||||
<value>classpath*:log4j/custom-log4j2.properties</value>
|
||||
<value>classpath*:log4j/log4j2.properties</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -1,2 +0,0 @@
|
||||
## Test to see that Log4J additions are picked up
|
||||
log4j.logger.org.alfresco.repo.admin.Log4JHierarchyInitTest=DEBUG
|
3
repository/src/test/resources/log4j/log4j2.properties
Normal file
3
repository/src/test/resources/log4j/log4j2.properties
Normal file
@@ -0,0 +1,3 @@
|
||||
## Test to see that Log4J additions are picked up
|
||||
logger.alfresco-repo-admin-Log4JHierarchyInitTest.name=org.alfresco.repo.admin.Log4JHierarchyInitTest
|
||||
logger.alfresco-repo-admin-Log4JHierarchyInitTest.level=DEBUG
|
Reference in New Issue
Block a user