Last active
August 24, 2017 17:05
-
-
Save ufo2mstar/a1ae076e4dba04aeab4e8b7a3c28a58b to your computer and use it in GitHub Desktop.
a working example to get the 'logging' gem setup and running for your application
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'logging' | |
# Logger params | |
Logging.init :debug, :info, :warn, :error, :fatal | |
# Custom colour set | |
Logging.color_scheme('my_bright', | |
:levels => { | |
:debug => :blue, | |
:info => :green, | |
:warn => :yellow, | |
:error => :red, | |
:fatal => [:black, :on_red] | |
}, | |
:date => :blue, | |
:logger => :cyan, | |
:message => :white | |
) | |
# File appender | |
Logging.appenders.file('file.log', | |
level: :debug, # or your custom lowest level init-ed | |
layout: Logging.layouts.pattern( | |
pattern: "[%d] %-5l %c: %m\n", | |
# color_scheme: 'my_bright', # best not to use color_schemes on file loggers | |
date_pattern: "%Y-%m-%d %H:%M:%S"), | |
# truncate: true, # if you want to clear old log information | |
# age: 5 * 60, # feel free to play around with these | |
roll_by: :date # for rolling logs if you want to change files periodically | |
) | |
# Stdout appender | |
Logging.appenders.stdout('stdout', | |
level: :info, # a different log level to your file appender | |
layout: Logging.layouts.pattern( | |
pattern: "[%d] %-5l %c: %m\n", | |
color_scheme: 'my_bright', # best not to use color_schemes on file loggers | |
date_pattern: "%Y-%m-%d %H:%M:%S")) | |
# sample logger setup module | |
module LoggerSetup | |
attr_reader :log | |
def init_logger(level = nil) | |
@log = Logging.logger[self] | |
@log.level = level || :debug # your lowest level | |
@log.add_appenders( | |
'stdout', | |
'file.log' | |
) | |
@log | |
end | |
end | |
# sample use-case | |
class Foo | |
include LoggerSetup | |
def initialize | |
init_logger | |
@log.info "Foo Initialized" | |
end | |
def bar | |
@log.debug "running bar" | |
baz | |
end | |
private | |
def baz | |
@log.fatal "ending on baz" | |
end | |
end | |
Foo.new.bar |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment