Browse Source

fix #1785 add FessLogManager

Shinsuke Sugaya 7 years ago
parent
commit
48ec1cec66

+ 1 - 0
src/main/assemblies/common-bin.xml

@@ -63,6 +63,7 @@
 			<directory>${project.build.directory}/fess/WEB-INF/classes/org/codelibs/fess/</directory>
 			<includes>
 				<include>FessBoot**</include>
+				<include>FessLogManager**</include>
 			</includes>
 			<outputDirectory>fess-${project.version}/lib/classes/org/codelibs/fess</outputDirectory>
 		</fileSet>

+ 1 - 0
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

+ 1 - 0
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

+ 47 - 0
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;
+        }
+    }
+}

+ 9 - 3
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
     <br>
@@ -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
     <br>
      * @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
     <br>
@@ -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}");

+ 3 - 0
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\