Module: Log2Json
- Defined in:
- lib/log2json/railslogger.rb
Constant Summary collapse
- LEVELS =
{ :debug => Logger::DEBUG, :info => Logger::INFO, :warn => Logger::WARN, :error => Logger::ERROR, :fatal => Logger::FATAL, :unknown => 5 }
Class Method Summary collapse
-
.create_custom_rails_logger(config) ⇒ Object
Create a custom logger that uses its own formatting for easier parsing by a log2json log monitoring script.
-
.create_custom_unicorn_logger(config) ⇒ Object
Simiar to the custom rails logger, but for unicorn.
- .log_formatter ⇒ Object
Class Method Details
.create_custom_rails_logger(config) ⇒ Object
Create a custom logger that uses its own formatting for easier parsing by a log2json log monitoring script.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/log2json/railslogger.rb', line 38 def self.create_custom_rails_logger(config) if config.respond_to?(:paths) # assume rails 3 path = config.paths["log"].first unless File.exist? File.dirname path FileUtils.mkdir_p File.dirname path end config.colorize_logging = false else # assume rails 2 path = config.log_path config.active_record.colorize_logging = false end logger = ::Logger.new(path) logger.level = LEVELS[config.log_level] logger.formatter = ::Log2Json::log_formatter if defined?(ActiveSupport::TaggedLogging) ActiveSupport::TaggedLogging.new(logger) else logger end end |
.create_custom_unicorn_logger(config) ⇒ Object
Simiar to the custom rails logger, but for unicorn.
61 62 63 64 65 66 |
# File 'lib/log2json/railslogger.rb', line 61 def self.create_custom_unicorn_logger(config) logger = ::Logger.new(config.set[:stderr_path]) logger.level = Logger::INFO logger.formatter = ::Log2Json::log_formatter logger end |
.log_formatter ⇒ Object
28 29 30 31 32 33 |
# File 'lib/log2json/railslogger.rb', line 28 def self.log_formatter proc do |severity, datetime, progname, msg| "#{datetime.strftime('%Y-%m-%dT%H:%M:%S%z')}: [#{severity}] #{$$} #{msg.gsub(/\n/, '#012')}\n" # Note: Following rsyslog's convention, all newlines are converted to '#012'. end end |