You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by "Helge Weissig (JIRA)" <ji...@apache.org> on 2015/07/08 19:56:04 UTC

[jira] [Updated] (TORQUE-337) Add ability to easily configure logging for the generator

     [ https://issues.apache.org/jira/browse/TORQUE-337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Helge Weissig updated TORQUE-337:
---------------------------------
    Description: 
The patch below allows for the easy configuration of logging for the generator. For example, using maven, the internal log4j.properties shipped with the torque-generator artifact can be overridden by including the command line flag '-Dlog4j.properties=file:/<path to file>'.

patch:
{code}
Index: torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java
===================================================================
--- torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(revision 1689921)
+++ torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(working copy)
@@ -35,6 +35,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.torque.generator.GeneratorException;
 import org.apache.torque.generator.configuration.Configuration;
@@ -152,19 +154,29 @@
      */
     protected void initLogging()
     {
-        final InputStream log4jStream
-                = Controller.class.getClassLoader().getResourceAsStream(
-                    "org/apache/torque/generator/log4j.properties");
-        final Properties log4jProperties = new Properties();
-        try
+        Logger logger = LogManager.exists("org.apache.torque.generator");
+        if (logger == null)
         {
-            log4jProperties.load(log4jStream);
+            log.info("Configuring logging from internal log4j.properties");
+            final InputStream log4jStream =
+                    Controller.class.getClassLoader().getResourceAsStream(
+                            "org/apache/torque/generator/log4j.properties");
+            final Properties log4jProperties = new Properties();
+
+            try
+            {
+                log4jProperties.load(log4jStream);
+            }
+            catch (final IOException e) {
+                throw new RuntimeException(e);
+            }
+
+            PropertyConfigurator.configure(log4jProperties);
         }
-        catch (final IOException e)
+        else
         {
-            throw new RuntimeException(e);
+            log.warn("Using external logging configuration");
         }
-        PropertyConfigurator.configure(log4jProperties);
     }
 
     /**
{code}

example log4j.properties:
{code}
## modify logging for the chatty Torque generator
log4j.logger.org.apache.torque.generator = INFO, generator, console
log4j.appender.generator = org.apache.log4j.FileAppender
log4j.appender.generator.file = target/torque-gen/log/torque-gen.log
log4j.appender.generator.append = true
log4j.appender.generator.layout = org.apache.log4j.PatternLayout
log4j.appender.generator.layout.conversionPattern = %d [%t] %-5p %c - %m%n

log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern = %-5p %c - %m%n
log4j.appender.console.threshold = WARN
{code}

  was:
The patch below allows for the easy configuration of logging for the generator. For example, using maven, the internal log4j.properties shipped with the torque-generator artifact can be overridden by including the command line flag '-Dlog4j.properties=file:/<path to file>'.

patch:
{code}
Index: torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java
===================================================================
--- torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(revision 1689921)
+++ torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(working copy)
@@ -35,6 +35,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.torque.generator.GeneratorException;
 import org.apache.torque.generator.configuration.Configuration;
@@ -152,19 +154,29 @@
      */
     protected void initLogging()
     {
-        final InputStream log4jStream
-                = Controller.class.getClassLoader().getResourceAsStream(
-                    "org/apache/torque/generator/log4j.properties");
-        final Properties log4jProperties = new Properties();
-        try
-        {
-            log4jProperties.load(log4jStream);
+        Logger logger = LogManager.exists("org.apache.torque.generator");
+        if (logger == null)
+		{
+            log.info("Configuring logging from internal log4j.properties");
+            final InputStream log4jStream =
+                    Controller.class.getClassLoader().getResourceAsStream(
+                            "org/apache/torque/generator/log4j.properties");
+            final Properties log4jProperties = new Properties();
+
+            try
+			{
+                log4jProperties.load(log4jStream);
+            }
+			catch (final IOException e) {
+                throw new RuntimeException(e);
+            }
+
+            PropertyConfigurator.configure(log4jProperties);
         }
-        catch (final IOException e)
-        {
-            throw new RuntimeException(e);
+		else
+		{
+            log.warn("Using external logging configuration");
         }
-        PropertyConfigurator.configure(log4jProperties);
     }
 
     /**
{code}

example log4j.properties:
{code}
## modify logging for the chatty Torque generator
log4j.logger.org.apache.torque.generator = INFO, generator, console
log4j.appender.generator = org.apache.log4j.FileAppender
log4j.appender.generator.file = target/torque-gen/log/torque-gen.log
log4j.appender.generator.append = true
log4j.appender.generator.layout = org.apache.log4j.PatternLayout
log4j.appender.generator.layout.conversionPattern = %d [%t] %-5p %c - %m%n

log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern = %-5p %c - %m%n
log4j.appender.console.threshold = WARN
{code}


> Add ability to easily configure logging for the generator
> ---------------------------------------------------------
>
>                 Key: TORQUE-337
>                 URL: https://issues.apache.org/jira/browse/TORQUE-337
>             Project: Torque
>          Issue Type: Improvement
>          Components: Generator
>    Affects Versions: 4.1
>            Reporter: Helge Weissig
>
> The patch below allows for the easy configuration of logging for the generator. For example, using maven, the internal log4j.properties shipped with the torque-generator artifact can be overridden by including the command line flag '-Dlog4j.properties=file:/<path to file>'.
> patch:
> {code}
> Index: torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java
> ===================================================================
> --- torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(revision 1689921)
> +++ torque-generator/src/main/java/org/apache/torque/generator/control/Controller.java	(working copy)
> @@ -35,6 +35,8 @@
>  
>  import org.apache.commons.logging.Log;
>  import org.apache.commons.logging.LogFactory;
> +import org.apache.log4j.LogManager;
> +import org.apache.log4j.Logger;
>  import org.apache.log4j.PropertyConfigurator;
>  import org.apache.torque.generator.GeneratorException;
>  import org.apache.torque.generator.configuration.Configuration;
> @@ -152,19 +154,29 @@
>       */
>      protected void initLogging()
>      {
> -        final InputStream log4jStream
> -                = Controller.class.getClassLoader().getResourceAsStream(
> -                    "org/apache/torque/generator/log4j.properties");
> -        final Properties log4jProperties = new Properties();
> -        try
> +        Logger logger = LogManager.exists("org.apache.torque.generator");
> +        if (logger == null)
>          {
> -            log4jProperties.load(log4jStream);
> +            log.info("Configuring logging from internal log4j.properties");
> +            final InputStream log4jStream =
> +                    Controller.class.getClassLoader().getResourceAsStream(
> +                            "org/apache/torque/generator/log4j.properties");
> +            final Properties log4jProperties = new Properties();
> +
> +            try
> +            {
> +                log4jProperties.load(log4jStream);
> +            }
> +            catch (final IOException e) {
> +                throw new RuntimeException(e);
> +            }
> +
> +            PropertyConfigurator.configure(log4jProperties);
>          }
> -        catch (final IOException e)
> +        else
>          {
> -            throw new RuntimeException(e);
> +            log.warn("Using external logging configuration");
>          }
> -        PropertyConfigurator.configure(log4jProperties);
>      }
>  
>      /**
> {code}
> example log4j.properties:
> {code}
> ## modify logging for the chatty Torque generator
> log4j.logger.org.apache.torque.generator = INFO, generator, console
> log4j.appender.generator = org.apache.log4j.FileAppender
> log4j.appender.generator.file = target/torque-gen/log/torque-gen.log
> log4j.appender.generator.append = true
> log4j.appender.generator.layout = org.apache.log4j.PatternLayout
> log4j.appender.generator.layout.conversionPattern = %d [%t] %-5p %c - %m%n
> log4j.appender.console = org.apache.log4j.ConsoleAppender
> log4j.appender.console.layout = org.apache.log4j.PatternLayout
> log4j.appender.console.layout.conversionPattern = %-5p %c - %m%n
> log4j.appender.console.threshold = WARN
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org