Uploaded image for project: 'Torque'
  1. Torque
  2. TORQUE-337

Add ability to easily configure logging for the generator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.0
    • 5.0
    • Generator
    • None
    • Patch

    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:

      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);
           }
       
           /**
      

      example log4j.properties:

      ## 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
      

      Attachments

        Activity

          People

            gk Georg Kallidis
            helgew Helge Weissig
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: