Skip to content

Commit c4d12aa

Browse files
committed
Merge branch 'master' into open_telemetry
2 parents 6c912dd + 05a00e1 commit c4d12aa

File tree

8 files changed

+61
-6
lines changed

8 files changed

+61
-6
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
55

66
## [unreleased]
77

8+
- Correct `source_code_uri` URL
9+
10+
## [4.16.1]
11+
12+
- Add Honeybadger and Honeybadger Insights to Appenders doc.
13+
- Fix regression in `SemanticLogger::Appenders#close`
14+
815
## [4.16.0]
916

1017
- Add appender for Honeybadger Insights using the events API

docs/appenders.md

+18
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Log messages can be written to one or more of the following destinations at the
2929
* MongoDB
3030
* Rollbar
3131
* Sentry
32+
* Honeybadger
33+
* Honeybadger Insights
3234
* Logger, log4r, etc.
3335

3436
To ensure no log messages are lost it is recommend to use TCP over UDP for logging purposes.
@@ -739,6 +741,22 @@ SemanticLogger.tagged(transaction_name: "foo", user_id: 42, baz: "quz") do
739741
end
740742
~~~
741743

744+
### Honeybadger and Honeybadger Insights
745+
746+
Forward errors to Honeybadger.
747+
748+
~~~ruby
749+
SemanticLogger.add_appender(appender: :honeybadger)
750+
~~~
751+
752+
Forward all log messages to Honeybadger Insights as events.
753+
754+
~~~ruby
755+
SemanticLogger.add_appender(appender: :honeybadger_insights)
756+
~~~
757+
758+
Both appenders use the Honeybadger [gem configuration](https://docs.honeybadger.io/lib/ruby/gem-reference/configuration/).
759+
742760
### Logger, log4r, etc.
743761

744762
Semantic Logger can log to other logging libraries:

docs/rails.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,9 @@ To show the Action View rendering messages in production:
252252
config.rails_semantic_logger.rendered = true
253253
~~~
254254

255-
#### Awesome Print Options
255+
#### Amazing Print Options
256256

257-
The default Awesome Print options can be changed by supplying any valid Awesome Print options:
257+
The default Amazing Print options can be changed by supplying any valid Amazing Print options:
258258

259259
~~~ruby
260260
config.rails_semantic_logger.ap_options = {multiline: false}
@@ -266,7 +266,7 @@ See the [Amazing Print Documentation](https://github.com/amazing-print/amazing_p
266266
Notes:
267267

268268
* The option `:multiline` is set to false if not supplied.
269-
* Has no effect if Awesome Print is not installed.
269+
* Has no effect if Amazing Print is not installed.
270270

271271
### Additional appenders
272272

docs/testing.md

+19
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,25 @@ assert_semantic_logger_event(
149149
)
150150
~~~
151151

152+
### RSpec
153+
154+
For RSpec users, this sample supplied by @jgascoignetaylor-godaddy will be useful:
155+
~~~ruby
156+
context 'when it blows up' do
157+
let(:capture_logger) { SemanticLogger::Test::CaptureLogEvents.new }
158+
159+
it 'should should log the error' do
160+
allow_any_instance_of(MyThing).to receive(:logger).and_return(capture_logger)
161+
MyThing.new('asdf').do_something!
162+
163+
expect(capture_logger.events.last.message).to include('Here is a message')
164+
expect(capture_logger.events.last.level).to eq(:error)
165+
end
166+
end
167+
~~~
168+
169+
Open to pull requests to implement the RSpec equivalent of the Minitest helpers: `SemanticLogger::Test::Minitest`.
170+
152171
### Other testing frameworks
153172

154173
If you use another testing framework and would like to contribute helper methods similar

lib/semantic_logger/appenders.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ def close
4949
closed_appenders = []
5050
each do |appender|
5151
logger.trace "Closing appender: #{appender.name}"
52-
appenders << appender
5352
appender.flush
5453
appender.close
54+
closed_appenders << appender
5555
rescue Exception => e
5656
logger.error "Failed to close appender: #{appender.name}", e
5757
end

lib/semantic_logger/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module SemanticLogger
2-
VERSION = "4.16.0".freeze
2+
VERSION = "4.16.1".freeze
33
end

semantic_logger.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
1919
s.metadata = {
2020
"bug_tracker_uri" => "https://github.com/reidmorrison/semantic_logger/issues",
2121
"documentation_uri" => "https://logger.rocketjob.io",
22-
"source_code_uri" => "https://github.com/reidmorrison/semantic_logger/tree/#{SemanticLogger::VERSION}",
22+
"source_code_uri" => "https://github.com/reidmorrison/semantic_logger/tree/v#{SemanticLogger::VERSION}",
2323
"rubygems_mfa_required" => "true"
2424
}
2525
end

test/appenders_test.rb

+11
Original file line numberDiff line numberDiff line change
@@ -100,5 +100,16 @@ class AppendersTest < Minitest::Test
100100
# assert_instance_of SemanticLogger::Appender::Async, appender
101101
# end
102102
end
103+
104+
describe "#close" do
105+
it "closes appenders" do
106+
appender = appenders.add(file_name: "test.log")
107+
108+
appenders.close
109+
110+
assert_equal 0, capture_logger.events.count { |it| it.message.match?(/failed/i) }
111+
assert_equal 0, appenders.size
112+
end
113+
end
103114
end
104115
end

0 commit comments

Comments
 (0)