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\