FTR, public_json.rb has been updated to copy non-info level files to the archive/ subdirectory.
The level name is appended so that more failed logs are kept (without needing to add a timestamp) On 22 February 2016 at 11:11, sebb <seb...@gmail.com> wrote: > On 19 February 2016 at 15:38, Sam Ruby <ru...@apache.org> wrote: >> Commit 83534133ec66be5665d14a26adae55712e4e630a: >> copy logs when something notable happens >> >> >> Branch: refs/heads/copy_json_logs >> Author: Sam Ruby <ru...@intertwingly.net> >> Committer: Sam Ruby <ru...@intertwingly.net> >> Pusher: rubys <ru...@apache.org> >> >> ------------------------------------------------------------ >> www/status/monitors/public_json.rb | ++++++++++ --- >> ------------------------------------------------------------ >> 13 changes: 10 additions, 3 deletions. >> ------------------------------------------------------------ >> >> >> diff --git a/www/status/monitors/public_json.rb >> b/www/status/monitors/public_json.rb >> index f25c7c0..557e1f8 100644 >> --- a/www/status/monitors/public_json.rb >> +++ b/www/status/monitors/public_json.rb >> @@ -2,19 +2,21 @@ >> # Monitor status of public json directory >> # >> >> +require 'fileutils' >> + >> def Monitor.public_json(previous_status) >> danger_period = 86_400 # one day >> >> warning_period = 5400 # 1.5 hours >> >> - logs = File.expand_path('../../www/logs/public-*') >> + logs = File.expand_path('../../www/logs/public-*.log') > > I don't understand the above change - AFAIK the cron jobs have not > changed and still create log files without the .log suffix > So won't this cause the logs to be missed? > >> >> status = {} >> >> Dir[logs].each do |log| >> - begin >> - name = File.basename(log).sub('public-', '') >> + name = File.basename(log).sub('public-', '') >> >> + begin >> status[name] = { >> href: "../logs/#{File.basename(log)}", >> mtime: File.mtime(log) >> @@ -69,6 +71,11 @@ def Monitor.public_json(previous_status) >> } >> } >> end >> + >> + if status[name][:level] >> + FileUtils.copy log, log.sub /\.log$/, '.' + status[name][:level], >> + preserve: true > > I think it would be better to store the files in a separate directory. > > Not sure it's sufficient to keep only the last of each status type. > I had in mind to keep the copy until it was deleted, e.g. using a date. > >> + end >> end >> >> {data: status}