- 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
```
# 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.
# 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.*$'
}
}
{
"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",
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
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
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
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