diff --git a/Changelog.md b/Changelog.md index 5f4186b17..0a74a48d6 100644 --- a/Changelog.md +++ b/Changelog.md @@ -72,6 +72,7 @@ Ruby 2.0 is no longer officially supported. * Add popover/tooltip about email visibility to registration/settings page [#5956](https://github.com/diaspora/diaspora/pull/5956) * Fetch person posts on sharing request [#5960](https://github.com/diaspora/diaspora/pull/5960) * Introduce 'authorized' configuration option for services [#5985](https://github.com/diaspora/diaspora/pull/5985) +* Added configuration options for log rotating [#5994](https://github.com/diaspora/diaspora/pull/5994) # 0.5.0.1 diff --git a/config/defaults.yml b/config/defaults.yml index 1fb013dfb..9018c39b6 100644 --- a/config/defaults.yml +++ b/config/defaults.yml @@ -31,6 +31,10 @@ defaults: upload: false host: pubsub_server: 'https://pubsubhubbub.appspot.com/' + logging: + logrotate: + enable: true + days: 7 server: listen: '0.0.0.0:3000' rails_environment: 'development' diff --git a/config/diaspora.yml.example b/config/diaspora.yml.example index d86b924d2..c894bf4b2 100644 --- a/config/diaspora.yml.example +++ b/config/diaspora.yml.example @@ -138,6 +138,17 @@ configuration: ## Section ## You probably don't want to uncomment or change this. #pubsub_server: 'https://pubsubhubbub.appspot.com/' + ## Logger configuration + logging: ## Section + + logrotate: ## Section + + ## Roll the application log on a daily basis (default=true). + #enable: true + + ## The number of days to keep (default=7) + #days: 7 + ## Settings affecting how ./script/server behaves. server: ## Section ## Where the appserver should listen to (default=unix:tmp/diaspora.sock) diff --git a/config/logging.rb b/config/logging.rb index ae5d536fd..77214f7a4 100644 --- a/config/logging.rb +++ b/config/logging.rb @@ -36,18 +36,30 @@ Logging::Rails.configure do |config| ) ) if config.log_to.include? "stdout" - # Configure an appender that will write log events to a file. The file will - # be rolled on a daily basis, and the past 7 rolled files will be kept. - # Older files will be deleted. The default pattern layout is used when - # formatting log events into strings. - Logging.appenders.rolling_file("file", - filename: config.paths["log"].first, - keep: 7, - age: "daily", - truncate: false, - auto_flushing: true, - layout: layout - ) if config.log_to.include? "file" + if config.log_to.include? "file" + # Configure an appender that will write log events to a file. + if AppConfig.environment.logging.logrotate.enable? + # The file will be rolled on a daily basis, and the rolled files will be kept + # the configured number of days. Older files will be deleted. The default pattern + # layout is used when formatting log events into strings. + Logging.appenders.rolling_file("file", + filename: config.paths["log"].first, + keep: AppConfig.environment.logging.logrotate.days.to_i, + age: "daily", + truncate: false, + auto_flushing: true, + layout: layout + ) + else + # No file rolling, use logrotate to roll the logfile. + Logging.appenders.file("file", + filename: config.paths["log"].first, + truncate: false, + auto_flushing: true, + layout: layout + ) + end + end # Setup the root logger with the Rails log level and the desired set of # appenders. The list of appenders to use should be set in the environment