Author: cbrisson
Date: Sun Nov 13 15:45:01 2016
New Revision: 1769506

URL: http://svn.apache.org/viewvc?rev=1769506&view=rev
Log:
[tools] let the fx use the 'tools' child logger

Modified:
    
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolContext.java
    
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolManager.java
    
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ConfigurationUtils.java
    
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LogTool.java

Modified: 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolContext.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolContext.java?rev=1769506&r1=1769505&r2=1769506&view=diff
==============================================================================
--- 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolContext.java
 (original)
+++ 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolContext.java
 Sun Nov 13 15:45:01 2016
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.Set;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.config.ConfigurationUtils;
 
 /**
  * {@link Context} implementation that keeps a list of {@link Toolbox}es
@@ -164,7 +165,7 @@ public class ToolContext implements Cont
     {
         // add the engine and log as common tool properties
         putToolProperty(ENGINE_KEY, engine);
-        putToolProperty(LOG_KEY, engine.getLog());
+        putToolProperty(LOG_KEY, ConfigurationUtils.getLog(engine, "tools"));
 
         // tell interested tools not to catch exceptions whenever there's a
         // method exception event handler configured for the engine

Modified: 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolManager.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolManager.java?rev=1769506&r1=1769505&r2=1769506&view=diff
==============================================================================
--- 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolManager.java
 (original)
+++ 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ToolManager.java
 Sun Nov 13 15:45:01 2016
@@ -21,14 +21,13 @@ package org.apache.velocity.tools;
 
 import java.util.Map;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.ConfigurationUtils;
 import org.apache.velocity.tools.config.FactoryConfiguration;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Manages tools for non-web applications. This simplifies the process
  * of getting a tool-populated Velocity context for merging with templates.
@@ -43,6 +42,7 @@ public class ToolManager
 {
     protected VelocityEngine velocity;
     protected ToolboxFactory factory;
+    protected Logger log = null;
     private Toolbox application;
     private boolean userOverwrite = true;
 
@@ -168,14 +168,24 @@ public class ToolManager
 
     public Logger getLog()
     {
-        if (velocity == null)
+        if (log == null)
         {
-            return LoggerFactory.getLogger(ToolManager.class);
-        }
-        else
-        {
-            return velocity.getLog();
+            synchronized (this)
+            {
+                if (log == null)
+                {
+                    if (velocity == null)
+                    {
+                        log = LoggerFactory.getLogger(ToolManager.class);
+                    }
+                    else
+                    {
+                        log = ConfigurationUtils.getLog(velocity, "tools");
+                    }
+                }
+            }
         }
+        return log;
     }
 
     public ToolContext createContext()

Modified: 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ConfigurationUtils.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ConfigurationUtils.java?rev=1769506&r1=1769505&r2=1769506&view=diff
==============================================================================
--- 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ConfigurationUtils.java
 (original)
+++ 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ConfigurationUtils.java
 Sun Nov 13 15:45:01 2016
@@ -28,10 +28,16 @@ import java.lang.reflect.Modifier;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
+
+import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.exception.ResourceNotFoundException;
+import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.tools.ClassUtils;
 import org.apache.velocity.tools.ToolboxFactory;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Utility methods for handling tool configurations.
  *
@@ -531,4 +537,24 @@ public class ConfigurationUtils
         }
     }
 
+    public static Logger getLog(VelocityEngine engine, String childNamespace)
+    {
+        /* first check config for a logger instance, then for a base logger 
name
+           this is mostly what RuntimeServices.getLog(String) does, but we 
don't
+            have access to RuntimeServices here
+         */
+        Logger logger = 
(Logger)engine.getProperty(RuntimeConstants.RUNTIME_LOG_INSTANCE);
+        if (logger == null)
+        {
+            String basename = 
(String)engine.getProperty(RuntimeConstants.RUNTIME_LOG_NAME);
+            if (basename == null)
+            {
+                basename = RuntimeConstants.DEFAULT_RUNTIME_LOG_NAME;
+            }
+            logger = LoggerFactory.getLogger(basename + "." + childNamespace);
+        }
+        return logger;
+    }
+
+
 }

Modified: 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LogTool.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LogTool.java?rev=1769506&r1=1769505&r2=1769506&view=diff
==============================================================================
--- 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LogTool.java
 (original)
+++ 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LogTool.java
 Sun Nov 13 15:45:01 2016
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
 
 @DefaultKey("log")
 @ValidScope(Scope.APPLICATION)
-public class LogTool
+public class LogTool extends SafeConfig
 {
     public static final String LOGGER_NAME_KEY = "loggerName";
     
@@ -66,12 +66,12 @@ public class LogTool
     /**
      * configure the logger
      */
-    public void configure(ValueParser values)
+    protected void configure(ValueParser values)
     {
         String loggerName = values.getString(LOGGER_NAME_KEY);
         if (loggerName == null)
         {
-            loggerName = "Velocity";
+            loggerName = "org.apache.velocity.tools";
         }
         LOG = LoggerFactory.getLogger(loggerName);
     }


Reply via email to