Class: Timber::Config
- Inherits:
-
Object
- Object
- Timber::Config
- Includes:
- Singleton
- Defined in:
- lib/timber/config.rb,
lib/timber/config/integrations.rb
Overview
Singleton class for reading and setting Timber configuration.
For Rails apps, this is installed into ‘config.timber`. See examples below.
Defined Under Namespace
Modules: Integrations
Constant Summary collapse
- DEVELOPMENT_NAME =
"development".freeze
- PRODUCTION_NAME =
"production".freeze
- STAGING_NAME =
"staging".freeze
- TEST_NAME =
"test".freeze
Instance Attribute Summary collapse
-
#http_body_limit ⇒ Object
writeonly
Sets the attribute http_body_limit.
Instance Method Summary collapse
-
#debug_logger ⇒ Object
Accessor method for #debug_logger=.
-
#debug_logger=(value) ⇒ Object
This is useful for debugging.
-
#debug_to_file!(file_path) ⇒ Object
A convenience method for writing internal Timber debug messages to a file.
-
#debug_to_stdout! ⇒ Object
A convenience method for writing internal Timber debug messages to STDOUT.
-
#environment ⇒ Object
Accessor method for #environment=.
-
#environment=(value) ⇒ Object
The environment your app is running in.
-
#integrations ⇒ Object
Convenience method for accessing the various ‘Timber::Integrations::*` class settings.
-
#logger ⇒ Object
Accessor method for #logger=.
-
#logger=(value) ⇒ Object
This is the main logger Timber writes to.
Instance Attribute Details
#http_body_limit=(value) ⇒ Object (writeonly)
Sets the attribute http_body_limit
33 34 35 |
# File 'lib/timber/config.rb', line 33 def http_body_limit=(value) @http_body_limit = value end |
Instance Method Details
#debug_logger ⇒ Object
Accessor method for #debug_logger=.
62 63 64 |
# File 'lib/timber/config.rb', line 62 def debug_logger @debug_logger end |
#debug_logger=(value) ⇒ Object
This is useful for debugging. This Sets a debug_logger to view internal Timber library log messages. The default is ‘nil`. Meaning log to nothing.
See #debug_to_file! and #debug_to_stdout! for convenience methods that handle creating and setting the logger.
57 58 59 |
# File 'lib/timber/config.rb', line 57 def debug_logger=(value) @debug_logger = value end |
#debug_to_file!(file_path) ⇒ Object
A convenience method for writing internal Timber debug messages to a file.
72 73 74 75 76 77 78 |
# File 'lib/timber/config.rb', line 72 def debug_to_file!(file_path) FileUtils.mkdir_p( File.dirname(file_path) ) file = File.open(file_path, "ab") file_logger = ::Logger.new(file) file_logger.formatter = SimpleLogFormatter.new self.debug_logger = file_logger end |
#debug_to_stdout! ⇒ Object
A convenience method for writing internal Timber debug messages to STDOUT.
86 87 88 89 90 |
# File 'lib/timber/config.rb', line 86 def debug_to_stdout! stdout_logger = ::Logger.new(STDOUT) stdout_logger.formatter = SimpleLogFormatter.new self.debug_logger = stdout_logger end |
#environment ⇒ Object
Accessor method for #environment=
103 104 105 |
# File 'lib/timber/config.rb', line 103 def environment @environment ||= ENV["RACK_ENV"] || ENV["RAILS_ENV"] || "development" end |
#environment=(value) ⇒ Object
The environment your app is running in. Defaults to ‘RACK_ENV` and `RAILS_ENV`. It should be rare that you have to set this. If the aforementioned env vars are not set please do.
98 99 100 |
# File 'lib/timber/config.rb', line 98 def environment=(value) @environment = value end |
#integrations ⇒ Object
Convenience method for accessing the various ‘Timber::Integrations::*` class settings. These provides settings for enabling, disabled, and silencing integrations. See Integrations for a full list of available methods.
110 111 112 |
# File 'lib/timber/config.rb', line 110 def integrations Integrations end |
#logger ⇒ Object
Accessor method for #logger=.
126 127 128 129 130 131 132 |
# File 'lib/timber/config.rb', line 126 def logger if @logger.is_a?(Proc) @logger.call() else @logger ||= Logger.new(STDOUT) end end |
#logger=(value) ⇒ Object
This is the main logger Timber writes to. All of the Timber integrations write to this logger instance. It should be set to your global logger. For Rails, this is set automatically to ‘Rails.logger`, you should not have to set this.
121 122 123 |
# File 'lib/timber/config.rb', line 121 def logger=(value) @logger = value end |