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}

Reply via email to