diff --git a/src/main/assemblies/common-bin.xml b/src/main/assemblies/common-bin.xml index 27c4190ec..d46c2a448 100644 --- a/src/main/assemblies/common-bin.xml +++ b/src/main/assemblies/common-bin.xml @@ -63,6 +63,7 @@ ${project.build.directory}/fess/WEB-INF/classes/org/codelibs/fess/ FessBoot** + FessLogManager** fess-${project.version}/lib/classes/org/codelibs/fess diff --git a/src/main/assemblies/files/fess.in.bat b/src/main/assemblies/files/fess.in.bat index dba246919..5bccb44e6 100644 --- a/src/main/assemblies/files/fess.in.bat +++ b/src/main/assemblies/files/fess.in.bat @@ -64,6 +64,7 @@ set JAVA_OPTS=%JAVA_OPTS% -Dio.netty.recycler.maxCapacityPerThread=0 set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.shutdownHookEnabled=false set JAVA_OPTS=%JAVA_OPTS% -Dlog4j2.disable.jmx=true set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.skipJansi=true +set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.codelibs.fess.FessLogManager REM SSL truststore for certificate validation over https REM JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks diff --git a/src/main/assemblies/files/fess.in.sh b/src/main/assemblies/files/fess.in.sh index b206bd7b9..5e4f3213a 100755 --- a/src/main/assemblies/files/fess.in.sh +++ b/src/main/assemblies/files/fess.in.sh @@ -57,6 +57,7 @@ JAVA_OPTS="$JAVA_OPTS -Dio.netty.recycler.maxCapacityPerThread=0" JAVA_OPTS="$JAVA_OPTS -Dlog4j.shutdownHookEnabled=false" JAVA_OPTS="$JAVA_OPTS -Dlog4j2.disable.jmx=true" JAVA_OPTS="$JAVA_OPTS -Dlog4j.skipJansi=true" +JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.codelibs.fess.FessLogManager" # GC logging options if [ "x$FESS_USE_GC_LOGGING" != "x" ]; then diff --git a/src/main/java/org/codelibs/fess/FessLogManager.java b/src/main/java/org/codelibs/fess/FessLogManager.java new file mode 100644 index 000000000..4dfbbee99 --- /dev/null +++ b/src/main/java/org/codelibs/fess/FessLogManager.java @@ -0,0 +1,47 @@ +/* + * Copyright 2012-2018 CodeLibs Project and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.codelibs.fess; + +import java.util.logging.LogManager; +import java.util.logging.Logger; + +public class FessLogManager extends LogManager { + + private static final String ORG_APACHE_LOGGING_LOG4J_JUL_LOG_MANAGER = "org.apache.logging.log4j.jul.LogManager"; + + @Override + public Logger getLogger(final String name) { + final LogManager logManager = getLogManager(ORG_APACHE_LOGGING_LOG4J_JUL_LOG_MANAGER); + if (logManager != null) { + return logManager.getLogger(name); + } + return LogManager.getLogManager().getLogger(name); + } + + private LogManager getLogManager(final String cname) { + try { + try { + final Class clz = ClassLoader.getSystemClassLoader().loadClass(cname); + return (LogManager) clz.newInstance(); + } catch (final ClassNotFoundException ex) { + final Class clz = Thread.currentThread().getContextClassLoader().loadClass(cname); + return (LogManager) clz.newInstance(); + } + } catch (final Exception ex) { + return null; + } + } +} diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index 4403c2bd0..e16fa2e5c 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -76,6 +76,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true */ @@ -103,6 +104,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager */ String JVM_SUGGEST_OPTIONS = "jvm.suggest.options"; @@ -133,6 +135,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true */ @@ -1553,6 +1556,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true
@@ -1585,6 +1589,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager
* @return The value of found property. (NotNull: if not found, exception but basically no way) */ @@ -1619,6 +1624,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true + -Djava.util.logging.manager=org.codelibs.fess.FessLogManager -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true
@@ -8469,13 +8475,13 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction defaultMap.put(FessConfig.APP_DIGEST_ALGORISM, "sha256"); defaultMap .put(FessConfig.JVM_CRAWLER_OPTIONS, - "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx512m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-XX:-OmitStackTraceInFastThrow\n-Djcifs.smb.client.responseTimeout=30000\n-Djcifs.smb.client.soTimeout=35000\n-Djcifs.smb.client.connTimeout=60000\n-Djcifs.smb.client.sessionTimeout=60000\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n"); + "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx512m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-XX:-OmitStackTraceInFastThrow\n-Djcifs.smb.client.responseTimeout=30000\n-Djcifs.smb.client.soTimeout=35000\n-Djcifs.smb.client.connTimeout=60000\n-Djcifs.smb.client.sessionTimeout=60000\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n"); defaultMap .put(FessConfig.JVM_SUGGEST_OPTIONS, - "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx256m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n"); + "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx256m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n"); defaultMap .put(FessConfig.JVM_THUMBNAIL_OPTIONS, - "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx128m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-XX:-OmitStackTraceInFastThrow\n-Djcifs.smb.client.responseTimeout=30000\n-Djcifs.smb.client.soTimeout=35000\n-Djcifs.smb.client.connTimeout=60000\n-Djcifs.smb.client.sessionTimeout=60000\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n"); + "-Djava.awt.headless=true\n-Dfile.encoding=UTF-8\n-Djna.nosys=true\n-Djdk.io.permissionsUseCanonicalPath=true\n-server\n-Xmx128m\n-XX:MaxMetaspaceSize=128m\n-XX:CompressedClassSpaceSize=32m\n-XX:-UseGCOverheadLimit\n-XX:+UseConcMarkSweepGC\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:+UseTLAB\n-XX:+DisableExplicitGC\n-XX:+HeapDumpOnOutOfMemoryError\n-XX:-OmitStackTraceInFastThrow\n-Djcifs.smb.client.responseTimeout=30000\n-Djcifs.smb.client.soTimeout=35000\n-Djcifs.smb.client.connTimeout=60000\n-Djcifs.smb.client.sessionTimeout=60000\n-Dgroovy.use.classvalue=true\n-Dio.netty.noUnsafe=true\n-Dio.netty.noKeySetOptimization=true\n-Dio.netty.recycler.maxCapacityPerThread=0\n-Dlog4j.shutdownHookEnabled=false\n-Dlog4j2.disable.jmx=true\n-Dlog4j.skipJansi=true\n-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n"); defaultMap.put(FessConfig.JOB_SYSTEM_JOB_IDS, "default_crawler"); defaultMap.put(FessConfig.JOB_TEMPLATE_TITLE_WEB, "Web Crawler - {0}"); defaultMap.put(FessConfig.JOB_TEMPLATE_TITLE_FILE, "File Crawler - {0}"); diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index 2db545545..6b7b1e5d4 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -49,6 +49,7 @@ jvm.crawler.options=\ -Dlog4j.shutdownHookEnabled=false\n\ -Dlog4j2.disable.jmx=true\n\ -Dlog4j.skipJansi=true\n\ +-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n\ -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n\ -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n\ @@ -76,6 +77,7 @@ jvm.suggest.options=\ -Dlog4j.shutdownHookEnabled=false\n\ -Dlog4j2.disable.jmx=true\n\ -Dlog4j.skipJansi=true\n\ +-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n\ jvm.thumbnail.options=\ @@ -106,6 +108,7 @@ jvm.thumbnail.options=\ -Dlog4j.shutdownHookEnabled=false\n\ -Dlog4j2.disable.jmx=true\n\ -Dlog4j.skipJansi=true\n\ +-Djava.util.logging.manager=org.codelibs.fess.FessLogManager\n\ -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n\ -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n\