INTPAK-123 Move to log4j2 33/66933/13
authorJanki Chhatbar <jchhatba@redhat.com>
Tue, 30 Jan 2018 10:08:36 +0000 (15:38 +0530)
committerJanki Chhatbar <jchhatba@redhat.com>
Fri, 23 Feb 2018 05:26:16 +0000 (10:56 +0530)
With karaf migration to 4.1, log4j migrates to V2. Move all logging
configs to use log4j2.

Referenced https://git.opendaylight.org/gerrit/#/c/66568/

Change-Id: I6d344211d90c36cdee0df8e55e18a04e59c2db45
Signed-Off-By: Janki Chhatbar <jchhatba@redhat.com>
CHANGELOG
README.markdown
manifests/config.pp
metadata.json
spec/spec_helper.rb
spec/spec_helper_acceptance.rb

index 32278c860b4a67c21580f321edbbe0afc61a95fd..7fa374be9a0d5efda8f54a58cb0c003eace56d84 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
 - Allow full customization of ODL RPM repo
 2017-11-17 Release 6.1.0
 - Configure websocket address
-2017-01-02 Release 6.2.0
+2018-01-02 Release 6.2.0
 - Adds SSL/TLS support
-2017-01-03 Release 6.3.0
+2018-01-03 Release 6.3.0
 - Add param to log karaf logs to either file or console
-2017-01-04 Release 6.3.1
+2018-01-04 Release 6.3.1
 - Bump default package for Debian from Carbon to Nitrogen
-2017-01-30 Release 6.3.2
+2018-01-30 Release 6.3.2
 - Update Jetty configuration
-2017-01-31 Release 7.0.0
+2018-01-31 Release 7.0.0
 - Update default REST API port to 8181
+2018-01-30 Release 8.0.0
+- Move to using log4j2
index a3f3541da607e5f6bd781ea7ae63faae311c7041..5915f399a1b6274c9ec496ac4d54e0cc3404c586 100644 (file)
@@ -279,10 +279,12 @@ The above example would add the following logging configuration to
 
 ```
 # Log level config added by puppet-opendaylight
-log4j.logger.org.opendaylight.ovsdb = TRACE
+log4j2.logger.org_opendaylight_ovsdb.level = TRACE
+log4j2.logger.org_opendaylight_ovsdb.name = org.opendaylight.ovsdb
 
 # Log level config added by puppet-opendaylight
-log4j.logger.org.opendaylight.ovsdb.lib = INFO
+log4j2.logger.org_opendaylight_ovsdb_lib.level = INFO
+log4j2.logger.org_opendaylight_ovsdb_lib.name = org.opendaylight.ovsdb.lib
 ```
 
 To view loggers and their verbosity levels, use `log:list` at the ODL Karaf shell.
index 8c8709bfcae2225de99516ac7cd9d82a9f7331b6..9837b4df93131f36192ba7cfe13814c88b915aa8 100644 (file)
@@ -189,43 +189,51 @@ class opendaylight::config {
 
   # Set any custom log levels
   $opendaylight::log_levels.each |$log_name, $logging_level| {
-    file_line {"logger-${log_name}":
+    $underscored_version = regsubst($log_name, '\.', '_', 'G')
+    file_line {"logger-${log_name}-level":
       ensure => present,
       path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-      line   => "log4j.logger.${log_name}=${logging_level}"
+      line   => "log4j2.logger.${underscored_version}.level = ${logging_level}",
+      match  => "log4j2.logger.${underscored_version}.level = .*$"
+    }
+    file_line {"logger-${log_name}-name":
+      ensure => present,
+      path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+      line   => "log4j2.logger.${underscored_version}.name = ${log_name}",
+      match  => "log4j2.logger.${underscored_version}.name = .*$"
     }
   }
 
   # set logging mechanism
   if $opendaylight::log_mechanism == 'console' {
-    file_line {'rootlogger':
-      ensure => present,
-      path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-      line   => 'log4j.rootLogger=INFO, stdout, osgi:*',
-      match  => '^log4j.rootLogger.*$'
-    }
-    file_line { 'logappender':
+    file_line { 'consoleappender':
       ensure => present,
       path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-      line   => 'log4j.appender.stdout.direct=true',
-      after  => 'log4j.appender.stdout=org.apache.log4j.ConsoleAppender',
-      match  => '^log4j.appender.stdout.direct.*$'
+      line   => 'karaf.log.console=INFO',
+      after  => 'log4j2.rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter',
+      match  => '^karaf.log.console.*$'
     }
   } else {
     # Set maximum ODL log file size
     file_line { 'logmaxsize':
       ensure => present,
       path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-      line   => "log4j.appender.out.maxFileSize=${::opendaylight::log_max_size}",
-      match  => '^log4j.appender.out.maxFileSize.*$'
+      line   => "log4j2.appender.rolling.policies.size.size = ${::opendaylight::log_max_size}",
+      match  => '^log4j2.appender.rolling.policies.size.size.*$'
+    }
+
+    file_line { 'rolloverstrategy':
+      ensure => present,
+      path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+      line   => 'log4j2.appender.rolling.strategy.type = DefaultRolloverStrategy'
     }
 
     # Set maximum number of ODL log file rollovers to preserve
-    file_line { 'logmaxrollover':
+    -> file_line { 'logmaxrollover':
       ensure => present,
       path   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-      line   => "log4j.appender.out.maxBackupIndex=${::opendaylight::log_max_rollover}",
-      match  => '^log4j.appender.out.maxBackupIndex.*$'
+      line   => "log4j2.appender.rolling.strategy.max = ${::opendaylight::log_max_rollover}",
+      match  => '^log4j2.appender.rolling.strategy.max.*$'
     }
   }
 
index ccfecfa895fcaf8f98e0cf17c077ebb25dda1113..c4467cf77868a7f66fd6b7d599843da5902000b0 100644 (file)
@@ -1,6 +1,6 @@
 {
     "name": "opendaylight-opendaylight",
-    "version": "7.0.0",
+    "version": "8.0.0",
     "author": "Daniel Farrell",
     "summary": "Puppet module that installs and configures the OpenDaylight SDN controller",
     "license": "BSD-2-Clause",
index 81f342003eed06adc859c6e4514ceb865efeb284..5b580336af9421622bf4b74bb029b446ee3b5675 100644 (file)
@@ -70,35 +70,34 @@ def log_settings(options = {})
 
   if log_mechanism == 'console'
     it {
-      should contain_file_line('rootlogger').with(
+      should contain_file_line('consoleappender').with(
         'path'  => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-        'line'  => 'log4j.rootLogger=INFO, stdout, osgi:*',
-        'match' => '^log4j.rootLogger.*$',
-      )
-    }
-    it {
-      should contain_file_line('logappender').with(
-        'path'               => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-        'line'               => 'log4j.appender.stdout.direct=true',
-        'after'              => 'log4j.appender.stdout=org.apache.log4j.ConsoleAppender',
-        'match'              => '^log4j.appender.stdout.direct.*$'
+        'line'  => 'karaf.log.console=INFO',
+        'after' => 'log4j2.rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter',
+        'match' => '^karaf.log.console.*$'
       )
     }
   else
-    it {
-      should contain_file_line('logmaxsize').with(
-        'path'   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-        'line'   => "log4j.appender.out.maxFileSize=#{log_max_size}",
-        'match'  => '^log4j.appender.out.maxFileSize.*$',
-      )
-    }
-    it {
-      should contain_file_line('logmaxrollover').with(
-        'path'   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-        'line'   => "log4j.appender.out.maxBackupIndex=#{log_max_rollover}",
-        'match'  => '^log4j.appender.out.maxBackupIndex.*$',
-      )
-    }
+  it {
+    should contain_file_line('logmaxsize').with(
+      'path'   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+      'line'   => "log4j2.appender.rolling.policies.size.size = #{log_max_size}",
+      'match'  => '^log4j2.appender.rolling.policies.size.size.*$',
+    )
+  }
+  it {
+    should contain_file_line('rolloverstrategy').with(
+      'path'   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+      'line'   => 'log4j2.appender.rolling.strategy.type = DefaultRolloverStrategy'
+    )
+  }
+  it {
+    should contain_file_line('logmaxrollover').with(
+      'path'   => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+      'line'   => "log4j2.appender.rolling.strategy.max = #{log_max_rollover}",
+      'match'  => '^log4j2.appender.rolling.strategy.max.*$',
+    )
+  }
   end
 end
 
@@ -174,16 +173,27 @@ def log_level_tests(options = {})
   if log_levels.empty?
     # Should contain log level config file
     it {
-      should_not contain_file_line('logger-org.opendaylight.ovsdb')
+      should_not contain_file_line('logger-org.opendaylight.ovsdb-level')
+    }
+    it {
+      should_not contain_file_line('logger-org.opendaylight.ovsdb-name')
     }
   else
     # Verify each custom log level config entry
     log_levels.each_pair do |logger, level|
+      underscored_version = "#{logger}".gsub('.', '_')
       it {
-        should contain_file_line("logger-#{logger}").with(
+        should contain_file_line("logger-#{logger}-level").with(
+          'ensure' => 'present',
+          'path' => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+          'line' => "log4j2.logger.#{underscored_version}.level = #{level}",
+          'match'  => "log4j2.logger.#{underscored_version}.level = .*$"
+        )
+        should contain_file_line("logger-#{logger}-name").with(
           'ensure' => 'present',
           'path' => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
-          'line' => "log4j.logger.#{logger}=#{level}",
+          'line' => "log4j2.logger.#{underscored_version}.name = #{logger}",
+          'match'  => "log4j2.logger.#{underscored_version}.name = .*$"
         )
       }
     end
index 70409594a0fd53e249fc4ea45cdcf1f1db1e5081..d433f867e3152ac0a7b72709d426a1e09aeb27bd 100644 (file)
@@ -222,16 +222,16 @@ def log_settings_validations(options = {})
       it { should be_file }
       it { should be_owned_by 'odl' }
       it { should be_grouped_into 'odl' }
-      its(:content) { should match /log4j.rootLogger=INFO, stdout, osgi:*/ }
-      its(:content) { should match /log4j.appender.stdout.direct=true/ }
+      its(:content) { should match /^karaf.log.console=INFO/ }
     end
   else
     describe file('/opt/opendaylight/etc/org.ops4j.pax.logging.cfg') do
       it { should be_file }
       it { should be_owned_by 'odl' }
       it { should be_grouped_into 'odl' }
-      its(:content) { should match /^log4j.appender.out.maxFileSize=#{log_max_size}/ }
-      its(:content) { should match /^log4j.appender.out.maxBackupIndex=#{log_max_rollover}/ }
+      its(:content) { should match /^log4j2.appender.rolling.policies.size.size = #{log_max_size}/ }
+      its(:content) { should match /^log4j2.appender.rolling.strategy.type = DefaultRolloverStrategy/ }
+      its(:content) { should match /^log4j2.appender.rolling.strategy.max = #{log_max_rollover}/ }
     end
   end
 end
@@ -293,11 +293,13 @@ def log_level_validations(options = {})
     end
     # Verify each custom log level config entry
     log_levels.each_pair do |logger, level|
+      underscored_version = "#{logger}".gsub('.', '_')
       describe file('/opt/opendaylight/etc/org.ops4j.pax.logging.cfg') do
         it { should be_file }
         it { should be_owned_by 'odl' }
         it { should be_grouped_into 'odl' }
-        its(:content) { should match /^log4j.logger.#{logger}=#{level}/ }
+        its(:content) { should match /^log4j2.logger.#{underscored_version}.level = #{level}/ }
+        its(:content) { should match /^log4j2.logger.#{underscored_version}.name = #{logger}/ }
       end
     end
   end