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.12"
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.
99
100
101
|
# File 'lib/debug_logging.rb', line 99
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 = “…”
82
83
84
|
# File 'lib/debug_logging.rb', line 82
def self.configuration
self.debug_logging_configuration ||= Configuration.new
end
|
For global config in an initializer with a block
87
88
89
|
# File 'lib/debug_logging.rb', line 87
def self.configure
yield(configuration)
end
|
.extended(base) ⇒ Object
57
58
59
60
|
# File 'lib/debug_logging.rb', line 57
def self.extended(base)
base.send(:extend, ArgumentPrinter)
base.debug_config_reset(debug_logging_configuration.dup)
end
|
Instance Method Details
#debug_add_invocation_id ⇒ Object
164
165
166
|
# File 'lib/debug_logging.rb', line 164
def debug_add_invocation_id
@debug_logging_configuration.add_invocation_id
end
|
#debug_add_invocation_id=(add_invocation_id) ⇒ Object
167
168
169
|
# File 'lib/debug_logging.rb', line 167
def debug_add_invocation_id=(add_invocation_id)
@debug_logging_configuration.add_invocation_id = add_invocation_id
end
|
#debug_args_max_length ⇒ Object
134
135
136
|
# File 'lib/debug_logging.rb', line 134
def debug_args_max_length
@debug_logging_configuration.args_max_length
end
|
#debug_args_max_length=(args_max_length) ⇒ Object
137
138
139
|
# File 'lib/debug_logging.rb', line 137
def debug_args_max_length=(args_max_length)
@debug_logging_configuration.args_max_length = args_max_length
end
|
#debug_class_benchmarks ⇒ Object
146
147
148
|
# File 'lib/debug_logging.rb', line 146
def debug_class_benchmarks
@debug_logging_configuration.class_benchmarks
end
|
#debug_class_benchmarks=(class_benchmarks) ⇒ Object
149
150
151
|
# File 'lib/debug_logging.rb', line 149
def debug_class_benchmarks=(class_benchmarks)
@debug_logging_configuration.class_benchmarks = class_benchmarks
end
|
#debug_colorized_chain_for_class ⇒ Object
158
159
160
|
# File 'lib/debug_logging.rb', line 158
def debug_colorized_chain_for_class
@debug_logging_configuration.colorized_chain_for_class
end
|
#debug_colorized_chain_for_class=(colorized_chain_for_class) ⇒ Object
161
162
163
|
# File 'lib/debug_logging.rb', line 161
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
152
153
154
|
# File 'lib/debug_logging.rb', line 152
def debug_colorized_chain_for_method
@debug_logging_configuration.colorized_chain_for_method
end
|
#debug_colorized_chain_for_method=(colorized_chain_for_method) ⇒ Object
155
156
157
|
# File 'lib/debug_logging.rb', line 155
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
76
77
78
|
# File 'lib/debug_logging.rb', line 76
def debug_config
@debug_logging_configuration
end
|
#debug_config_reset(config = Configuration.new) ⇒ Object
101
102
103
|
# File 'lib/debug_logging.rb', line 101
def debug_config_reset(config = Configuration.new)
@debug_logging_configuration = config
end
|
#debug_ellipsis ⇒ Object
176
177
178
|
# File 'lib/debug_logging.rb', line 176
def debug_ellipsis
@debug_logging_configuration.ellipsis
end
|
#debug_ellipsis=(ellipsis) ⇒ Object
179
180
181
|
# File 'lib/debug_logging.rb', line 179
def debug_ellipsis=(ellipsis)
@debug_logging_configuration.ellipsis = ellipsis
end
|
#debug_instance_benchmarks ⇒ Object
140
141
142
|
# File 'lib/debug_logging.rb', line 140
def debug_instance_benchmarks
@debug_logging_configuration.instance_benchmarks
end
|
#debug_instance_benchmarks=(instance_benchmarks) ⇒ Object
143
144
145
|
# File 'lib/debug_logging.rb', line 143
def debug_instance_benchmarks=(instance_benchmarks)
@debug_logging_configuration.instance_benchmarks = instance_benchmarks
end
|
#debug_last_hash_max_length ⇒ Object
128
129
130
|
# File 'lib/debug_logging.rb', line 128
def debug_last_hash_max_length
@debug_logging_configuration.last_hash_max_length
end
|
#debug_last_hash_max_length=(last_hash_max_length) ⇒ Object
131
132
133
|
# File 'lib/debug_logging.rb', line 131
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
122
123
124
|
# File 'lib/debug_logging.rb', line 122
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
125
126
127
|
# File 'lib/debug_logging.rb', line 125
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.
66
67
68
69
70
71
72
|
# File 'lib/debug_logging.rb', line 66
def debug_log(message = nil, config_proxy = nil, &block)
config_proxy ||= debug_config
config_proxy.log(message, &block)
end
|
#debug_log_level ⇒ Object
110
111
112
|
# File 'lib/debug_logging.rb', line 110
def debug_log_level
@debug_logging_configuration.log_level
end
|
#debug_log_level=(log_level) ⇒ Object
113
114
115
|
# File 'lib/debug_logging.rb', line 113
def debug_log_level=(log_level)
@debug_logging_configuration.log_level = log_level
end
|
#debug_logger ⇒ Object
104
105
106
|
# File 'lib/debug_logging.rb', line 104
def debug_logger
@debug_logging_configuration.logger
end
|
#debug_logger=(logger) ⇒ Object
107
108
109
|
# File 'lib/debug_logging.rb', line 107
def debug_logger=(logger)
@debug_logging_configuration.logger = logger
end
|
For per-class config with a block
92
93
94
95
|
# File 'lib/debug_logging.rb', line 92
def debug_logging_configure
@debug_logging_configuration ||= Configuration.new
yield(@debug_logging_configuration)
end
|
#debug_mark_scope_exit ⇒ Object
170
171
172
|
# File 'lib/debug_logging.rb', line 170
def debug_mark_scope_exit
@debug_logging_configuration.mark_scope_exit
end
|
#debug_mark_scope_exit=(mark_scope_exit) ⇒ Object
173
174
175
|
# File 'lib/debug_logging.rb', line 173
def debug_mark_scope_exit=(mark_scope_exit)
@debug_logging_configuration.mark_scope_exit = mark_scope_exit
end
|
#debug_multiple_last_hashes ⇒ Object
116
117
118
|
# File 'lib/debug_logging.rb', line 116
def debug_multiple_last_hashes
@debug_logging_configuration.multiple_last_hashes
end
|
#debug_multiple_last_hashes=(multiple_last_hashes) ⇒ Object
119
120
121
|
# File 'lib/debug_logging.rb', line 119
def debug_multiple_last_hashes=(multiple_last_hashes)
@debug_logging_configuration.multiple_last_hashes = multiple_last_hashes
end
|