Module: DebugLogging
- Defined in:
- lib/debug_logging.rb,
lib/debug_logging/version.rb,
lib/debug_logging/class_logger.rb,
lib/debug_logging/configuration.rb,
lib/debug_logging/instance_logger.rb,
lib/debug_logging/argument_printer.rb,
lib/debug_logging/instance_logger_modulizer.rb
Overview
# NOTE: The manner this is made to work for class methods is totally different
than the way this is made to work for instance methods.
NOTE: The instance method manner works on Ruby 2.0+ NOTE: The class method manner works on Ruby 2.1+
USAGE (see specs)#
class Car
extend DebugLogging
self.debug_class_benchmarks = true
self.debug_instance_benchmarks = true
include DebugLogging::InstanceLogger.new(i_methods: [:drive, :stop])
extend DebugLogging::ClassLogger
logged def debug_make; new; end
def design(*args); new; end
def safety(*args); new; end
logged :design, :safety
def drive(speed); speed; end
def stop; 0; end
include DebugLogging::InstanceLogger.new(i_methods: self.instance_methods(false))
def will_not_be_logged; false; end
end
Defined Under Namespace
Modules: ArgumentPrinter, ClassLogger, InstanceLoggerModulizer
Classes: Configuration, InstanceLogger
Constant Summary
collapse
- VERSION =
"1.0.17"
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Attribute Details
.debug_logging_configuration ⇒ Object
Returns the value of attribute debug_logging_configuration.
101
102
103
|
# File 'lib/debug_logging.rb', line 101
def debug_logging_configuration
@debug_logging_configuration
end
|
Class Method Details
.configuration ⇒ Object
For single statement global config in an initializer e.g. DebugLogging.configuration.ellipsis = “…”
84
85
86
|
# File 'lib/debug_logging.rb', line 84
def self.configuration
self.debug_logging_configuration ||= Configuration.new
end
|
For global config in an initializer with a block
89
90
91
|
# File 'lib/debug_logging.rb', line 89
def self.configure
yield(configuration)
end
|
.extended(base) ⇒ Object
59
60
61
62
|
# File 'lib/debug_logging.rb', line 59
def self.extended(base)
base.send(:extend, ArgumentPrinter)
base.debug_config_reset(Configuration.new(**debug_logging_configuration.to_hash))
end
|
Instance Method Details
#debug_add_invocation_id ⇒ Object
172
173
174
|
# File 'lib/debug_logging.rb', line 172
def debug_add_invocation_id
@debug_logging_configuration.add_invocation_id
end
|
#debug_add_invocation_id=(add_invocation_id) ⇒ Object
175
176
177
|
# File 'lib/debug_logging.rb', line 175
def debug_add_invocation_id=(add_invocation_id)
@debug_logging_configuration.add_invocation_id = add_invocation_id
end
|
#debug_args_max_length ⇒ Object
142
143
144
|
# File 'lib/debug_logging.rb', line 142
def debug_args_max_length
@debug_logging_configuration.args_max_length
end
|
#debug_args_max_length=(args_max_length) ⇒ Object
145
146
147
|
# File 'lib/debug_logging.rb', line 145
def debug_args_max_length=(args_max_length)
@debug_logging_configuration.args_max_length = args_max_length
end
|
#debug_class_benchmarks ⇒ Object
154
155
156
|
# File 'lib/debug_logging.rb', line 154
def debug_class_benchmarks
@debug_logging_configuration.class_benchmarks
end
|
#debug_class_benchmarks=(class_benchmarks) ⇒ Object
157
158
159
|
# File 'lib/debug_logging.rb', line 157
def debug_class_benchmarks=(class_benchmarks)
@debug_logging_configuration.class_benchmarks = class_benchmarks
end
|
#debug_colorized_chain_for_class ⇒ Object
166
167
168
|
# File 'lib/debug_logging.rb', line 166
def debug_colorized_chain_for_class
@debug_logging_configuration.colorized_chain_for_class
end
|
#debug_colorized_chain_for_class=(colorized_chain_for_class) ⇒ Object
169
170
171
|
# File 'lib/debug_logging.rb', line 169
def debug_colorized_chain_for_class=(colorized_chain_for_class)
@debug_logging_configuration.colorized_chain_for_class = colorized_chain_for_class
end
|
#debug_colorized_chain_for_method ⇒ Object
160
161
162
|
# File 'lib/debug_logging.rb', line 160
def debug_colorized_chain_for_method
@debug_logging_configuration.colorized_chain_for_method
end
|
#debug_colorized_chain_for_method=(colorized_chain_for_method) ⇒ Object
163
164
165
|
# File 'lib/debug_logging.rb', line 163
def debug_colorized_chain_for_method=(colorized_chain_for_method)
@debug_logging_configuration.colorized_chain_for_method = colorized_chain_for_method
end
|
#debug_config ⇒ Object
There are times when the class will need access to the configuration object,
such as to override it per instance method
78
79
80
|
# File 'lib/debug_logging.rb', line 78
def debug_config
@debug_logging_configuration
end
|
#debug_config_reset(config = Configuration.new) ⇒ Object
103
104
105
|
# File 'lib/debug_logging.rb', line 103
def debug_config_reset(config = Configuration.new)
@debug_logging_configuration = config
end
|
#debug_ellipsis ⇒ Object
184
185
186
|
# File 'lib/debug_logging.rb', line 184
def debug_ellipsis
@debug_logging_configuration.ellipsis
end
|
#debug_ellipsis=(ellipsis) ⇒ Object
187
188
189
|
# File 'lib/debug_logging.rb', line 187
def debug_ellipsis=(ellipsis)
@debug_logging_configuration.ellipsis = ellipsis
end
|
#debug_enabled ⇒ Object
106
107
108
|
# File 'lib/debug_logging.rb', line 106
def debug_enabled
@debug_logging_configuration.enabled
end
|
#debug_enabled=(value) ⇒ Object
109
110
111
|
# File 'lib/debug_logging.rb', line 109
def debug_enabled=(value)
@debug_logging_configuration.enabled = value
end
|
#debug_instance_benchmarks ⇒ Object
148
149
150
|
# File 'lib/debug_logging.rb', line 148
def debug_instance_benchmarks
@debug_logging_configuration.instance_benchmarks
end
|
#debug_instance_benchmarks=(instance_benchmarks) ⇒ Object
151
152
153
|
# File 'lib/debug_logging.rb', line 151
def debug_instance_benchmarks=(instance_benchmarks)
@debug_logging_configuration.instance_benchmarks = instance_benchmarks
end
|
#debug_last_hash_max_length ⇒ Object
136
137
138
|
# File 'lib/debug_logging.rb', line 136
def debug_last_hash_max_length
@debug_logging_configuration.last_hash_max_length
end
|
#debug_last_hash_max_length=(last_hash_max_length) ⇒ Object
139
140
141
|
# File 'lib/debug_logging.rb', line 139
def debug_last_hash_max_length=(last_hash_max_length)
@debug_logging_configuration.last_hash_max_length = last_hash_max_length
end
|
#debug_last_hash_to_s_proc ⇒ Object
130
131
132
|
# File 'lib/debug_logging.rb', line 130
def debug_last_hash_to_s_proc
@debug_logging_configuration.last_hash_to_s_proc
end
|
#debug_last_hash_to_s_proc=(last_hash_to_s_proc) ⇒ Object
133
134
135
|
# File 'lib/debug_logging.rb', line 133
def debug_last_hash_to_s_proc=(last_hash_to_s_proc)
@debug_logging_configuration.last_hash_to_s_proc = last_hash_to_s_proc
end
|
#debug_log(message = nil, config_proxy = nil, &block) ⇒ Object
API #### Not used by this gem internally, but provides an external interface for
classes to also use this logging tool directly,
with configured options like benchmarking, colors, or leg level.
68
69
70
71
72
73
74
|
# File 'lib/debug_logging.rb', line 68
def debug_log(message = nil, config_proxy = nil, &block)
config_proxy ||= debug_config
config_proxy.log(message, &block)
end
|
#debug_log_level ⇒ Object
118
119
120
|
# File 'lib/debug_logging.rb', line 118
def debug_log_level
@debug_logging_configuration.log_level
end
|
#debug_log_level=(log_level) ⇒ Object
121
122
123
|
# File 'lib/debug_logging.rb', line 121
def debug_log_level=(log_level)
@debug_logging_configuration.log_level = log_level
end
|
#debug_logger ⇒ Object
112
113
114
|
# File 'lib/debug_logging.rb', line 112
def debug_logger
@debug_logging_configuration.logger
end
|
#debug_logger=(logger) ⇒ Object
115
116
117
|
# File 'lib/debug_logging.rb', line 115
def debug_logger=(logger)
@debug_logging_configuration.logger = logger
end
|
For per-class config with a block
94
95
96
97
|
# File 'lib/debug_logging.rb', line 94
def debug_logging_configure
@debug_logging_configuration ||= Configuration.new
yield(@debug_logging_configuration)
end
|
#debug_mark_scope_exit ⇒ Object
178
179
180
|
# File 'lib/debug_logging.rb', line 178
def debug_mark_scope_exit
@debug_logging_configuration.mark_scope_exit
end
|
#debug_mark_scope_exit=(mark_scope_exit) ⇒ Object
181
182
183
|
# File 'lib/debug_logging.rb', line 181
def debug_mark_scope_exit=(mark_scope_exit)
@debug_logging_configuration.mark_scope_exit = mark_scope_exit
end
|
#debug_multiple_last_hashes ⇒ Object
124
125
126
|
# File 'lib/debug_logging.rb', line 124
def debug_multiple_last_hashes
@debug_logging_configuration.multiple_last_hashes
end
|
#debug_multiple_last_hashes=(multiple_last_hashes) ⇒ Object
127
128
129
|
# File 'lib/debug_logging.rb', line 127
def debug_multiple_last_hashes=(multiple_last_hashes)
@debug_logging_configuration.multiple_last_hashes = multiple_last_hashes
end
|