syslogger5424 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a5aca48fbb6352b4a7a4bc1c8efc5f02a98b532b
4
- data.tar.gz: 6aa5cb54e9e791362bbb2e8f63fd4f383cc8b259
3
+ metadata.gz: cb72907be740aa357f6e75ec6b6991e411495f61
4
+ data.tar.gz: 3623fb6277835cf58248194a2f88ca35759d7f6a
5
5
  SHA512:
6
- metadata.gz: 7553cda8c414c9e79787c7af26c01cba6f8f9e43891c661d10dd0ccb1aa2be069df49ffa7d15dd76c46bf29b57a4040ac61f28eb0a44d15355b1663a26653504
7
- data.tar.gz: 9a5cc28f8a00d500d2968f3194fc66a7d6fcc67f63d2169e837c1e0566fb734db3e1ff53bdbf2e453d3d1ef78e7ad31b7c1d5eac33115f75c5bc3db2b3c02bae
6
+ metadata.gz: 54ba31de3c9cfaeb31f3efdd263bec371a339c4706d1ba6583a970dcbc5f687fd06b87d0a5ac5dcfa498579a3044b1726b58ea8361d17728b370a53df0345529
7
+ data.tar.gz: c5c13c7e1d8fbcab763654ec95fb73d2ce63593ac4e35a1a82917dbeff3f803a3c11287c15388eb8594b41beb49090d425062e1f63f2fdf9446848b9ca7051b2
@@ -76,27 +76,33 @@ module SysLogger
76
76
  # a block was received to generate the message.
77
77
  message_id = progname.nil? ? msgid : format_field(progname, 32)
78
78
 
79
- @counter = (@counter + 1) % 65536
80
-
81
79
  structured_data = {
82
80
  "meta" => {
83
- "x-group" => rand(99999999),
81
+ "x-group" => gen_xgroup,
84
82
  "x-counter" => @counter
85
83
  }
86
84
  }
87
85
 
88
- sd = format_sdata(structured_data)
89
-
90
86
  lines = msg2str(message).split(/\r?\n/).reject(&:empty?).map do |line|
87
+ @counter = (@counter + 1) % 65536
88
+ structured_data["meta"]["x-counter"] = @counter
89
+ sd = format_sdata(structured_data)
91
90
  Format % [pri, datetime.strftime("%FT%T.%6N%:z"), @hostname,
92
91
  @appname, format_field(@procid || Process.pid.to_s, 128),
93
92
  message_id, sd, line]
94
93
  end
95
-
96
- lines.join
94
+ if lines.size == 1
95
+ lines[0]
96
+ else
97
+ lines
98
+ end
97
99
  end
98
100
 
99
101
  private
102
+ def gen_xgroup
103
+ rand(99999999)
104
+ end
105
+
100
106
  def format_field(text, max_length)
101
107
  if text
102
108
  text[0..max_length].gsub(/\s+/, '')
@@ -22,9 +22,9 @@ module SysLogger
22
22
  # server properly.
23
23
  # default to a serverity of info.
24
24
  msg.split(/\r?\n/).each { |line|
25
- if line then
26
- self.info(line)
27
- end
25
+ if line then
26
+ self.info(line)
27
+ end
28
28
  }
29
29
  end
30
30
 
@@ -16,6 +16,10 @@ describe SysLogger::IO do
16
16
  expect(io.string).to eq "foobar"
17
17
  end
18
18
 
19
+ it "handles array messages" do
20
+ subject.write(["foo", "bar"])
21
+ expect(io.string).to eq "foobar"
22
+ end
19
23
  end
20
24
 
21
25
  describe "unix_dgram_socket" do
@@ -1,14 +1,31 @@
1
1
  describe SysLogger::Logger do
2
2
  let(:io) { StringIO.new }
3
+ let(:time_under_test) { Time.new(2019, 10, 28, 12, 26, 0, "-07:00") }
3
4
 
4
5
  subject { SysLogger::Logger.new(io) }
5
6
 
6
7
  its("logdev.dev") { is_expected.to be io }
7
8
  its(:default_formatter) { is_expected.to be_a SysLogger::Formatter::RFC5424 }
8
9
 
10
+ before(:example) do
11
+ allow(Time).to receive(:now).and_return(time_under_test)
12
+ allow(Socket).to receive(:gethostname).and_return("testhostname")
13
+ allow(Process).to receive(:pid).and_return(1234)
14
+ allow_any_instance_of(SysLogger::Formatter::RFC5424).to receive(:gen_xgroup).and_return(98765)
15
+ end
16
+
9
17
  it "logs exceptions" do
10
18
  subject.error StandardError.new("foobar")
11
19
  expect(io.string).to match(
12
20
  /<187>1.* - #{Process.pid} - \[meta x-group=".*"\] foobar \(StandardError\)/)
13
21
  end
22
+
23
+ it "sends multiline messages as an array" do
24
+ expect(io).to receive(:write).with([
25
+ "<190>1 2019-10-28T12:26:00.000000-07:00 testhostname - 1234 - [meta x-group=\"98765\" x-counter=\"1\"] foo\n",
26
+ "<190>1 2019-10-28T12:26:00.000000-07:00 testhostname - 1234 - [meta x-group=\"98765\" x-counter=\"2\"] bar\n",
27
+ "<190>1 2019-10-28T12:26:00.000000-07:00 testhostname - 1234 - [meta x-group=\"98765\" x-counter=\"3\"] baz\n"
28
+ ])
29
+ subject.info "foo\nbar\nbaz"
30
+ end
14
31
  end
metadata CHANGED
@@ -1,101 +1,102 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syslogger5424
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - EasyPost
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-11 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mono_logger
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec-its
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-temp_dir
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description:
98
- email: support@easypost.com
97
+ description: Logger subclass to log to syslog using the RFC 5424 format, with support
98
+ for STREAM- and DGRAM-mode domain sockets
99
+ email: oss@easypost.com
99
100
  executables: []
100
101
  extensions: []
101
102
  extra_rdoc_files: []
@@ -111,25 +112,27 @@ files:
111
112
  - spec/syslogger/logger_spec.rb
112
113
  - spec/syslogger_spec.rb
113
114
  homepage: http://github.com/EasyPost/syslogger
114
- licenses: []
115
- metadata: {}
115
+ licenses:
116
+ - ISC
117
+ metadata:
118
+ changelog_uri: https://github.com/easypost/syslogger/blob/master/CHANGES.md
116
119
  post_install_message:
117
120
  rdoc_options: []
118
121
  require_paths:
119
122
  - lib
120
123
  required_ruby_version: !ruby/object:Gem::Requirement
121
124
  requirements:
122
- - - '>='
125
+ - - ">="
123
126
  - !ruby/object:Gem::Version
124
- version: '0'
127
+ version: '2.1'
125
128
  required_rubygems_version: !ruby/object:Gem::Requirement
126
129
  requirements:
127
- - - '>='
130
+ - - ">="
128
131
  - !ruby/object:Gem::Version
129
132
  version: '0'
130
133
  requirements: []
131
134
  rubyforge_project:
132
- rubygems_version: 2.0.14.1
135
+ rubygems_version: 2.2.2
133
136
  signing_key:
134
137
  specification_version: 4
135
138
  summary: Logging via syslog using RFC 5424 format