{"action":"created","issue":{"url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/38","labels_url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/38/labels{/name}","comments_url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/38/comments","events_url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/38/events","html_url":"https://github.com/mattbrictson/airbrussh/pull/38","id":93354342,"number":38,"title":"Split Formatter into ConsoleFormatter and LogFileFormatter; use DelegatingFormatter to send logging events to both","user":{"login":"mattbrictson","id":189693,"avatar_url":"https://avatars.githubusercontent.com/u/189693?v=3","gravatar_id":"","url":"https://api.github.com/users/mattbrictson","html_url":"https://github.com/mattbrictson","followers_url":"https://api.github.com/users/mattbrictson/followers","following_url":"https://api.github.com/users/mattbrictson/following{/other_user}","gists_url":"https://api.github.com/users/mattbrictson/gists{/gist_id}","starred_url":"https://api.github.com/users/mattbrictson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattbrictson/subscriptions","organizations_url":"https://api.github.com/users/mattbrictson/orgs","repos_url":"https://api.github.com/users/mattbrictson/repos","events_url":"https://api.github.com/users/mattbrictson/events{/privacy}","received_events_url":"https://api.github.com/users/mattbrictson/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-07-06T19:10:54Z","updated_at":"2015-07-07T02:52:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mattbrictson/airbrussh/pulls/38","html_url":"https://github.com/mattbrictson/airbrussh/pull/38","diff_url":"https://github.com/mattbrictson/airbrussh/pull/38.diff","patch_url":"https://github.com/mattbrictson/airbrussh/pull/38.patch"},"body":"This PR replaces #36 and contains the complete set of refactoring originally proposed in #24.\r\n\r\nAs before, this adds `DelegatingFormatter`, which forwards logging methods to 1 or more other formatters. The former responsibilities of `Airbrussh::Formatter` have now been split into two new classes: `ConsoleFormatter` and `LogFileFormatter`. All of these new class are independently unit tested.\r\n\r\nWith these changes, `Airbrussh::Formatter` becomes a trivial subclass of `DelegatingFormatter`, using the configuration to determine what formatters to forward to. `SSHKit::Formatter::Airbrussh` remains an alias for `Airbrussh::Formatter`. From the end-user's perspective, nothing should appear different.\r\n\r\n*There is one small behavior change.* Before, if no log file was configured, the automatic banner message would disappear entirely. Now the banner simply says `Using airbrussh format.` (i.e. without the sentence about the log file). I consider the old behavior to be a bug.\r\n\r\n@robd Your review and suggestions would be appreciated, as always!"},"comment":{"url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/comments/119054198","html_url":"https://github.com/mattbrictson/airbrussh/pull/38#issuecomment-119054198","issue_url":"https://api.github.com/repos/mattbrictson/airbrussh/issues/38","id":119054198,"user":{"login":"mattbrictson","id":189693,"avatar_url":"https://avatars.githubusercontent.com/u/189693?v=3","gravatar_id":"","url":"https://api.github.com/users/mattbrictson","html_url":"https://github.com/mattbrictson","followers_url":"https://api.github.com/users/mattbrictson/followers","following_url":"https://api.github.com/users/mattbrictson/following{/other_user}","gists_url":"https://api.github.com/users/mattbrictson/gists{/gist_id}","starred_url":"https://api.github.com/users/mattbrictson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattbrictson/subscriptions","organizations_url":"https://api.github.com/users/mattbrictson/orgs","repos_url":"https://api.github.com/users/mattbrictson/repos","events_url":"https://api.github.com/users/mattbrictson/events{/privacy}","received_events_url":"https://api.github.com/users/mattbrictson/received_events","type":"User","site_admin":false},"created_at":"2015-07-07T02:52:05Z","updated_at":"2015-07-07T02:52:05Z","body":"@robd Thanks for reviewing! I'll merge this."}}