remote_syslog 1.6.9 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -254,6 +254,20 @@ exclude_patterns with an array or regexes:
254
254
  - exclude this
255
255
  - \d+ things
256
256
 
257
+ ### Prepending a string to log messages
258
+
259
+ Use `prepend` to prepend a string to every log message before
260
+ transmitting. The string is prepended to the log message body, as if it
261
+ occurred at the start of every log file line. Include a trailing space
262
+ if desired.
263
+
264
+ Examples:
265
+
266
+ prepend: important:
267
+
268
+ or:
269
+
270
+ prepend: cafebabe-1024-4096-badd-1234abcd1234
257
271
 
258
272
  ### Choosing app name
259
273
 
data/Rakefile CHANGED
@@ -48,7 +48,7 @@ task :default => :test
48
48
  require 'rake/testtask'
49
49
  Rake::TestTask.new(:test) do |test|
50
50
  test.libs << 'lib' << 'test'
51
- test.pattern = 'test/**/test_*.rb'
51
+ test.pattern = 'test/**/*_test.rb'
52
52
  test.verbose = true
53
53
  end
54
54
 
@@ -60,7 +60,7 @@ task :coverage do
60
60
  sh "open coverage/index.html"
61
61
  end
62
62
 
63
- require 'rake/rdoctask'
63
+ require 'rdoc/task'
64
64
  Rake::RDocTask.new do |rdoc|
65
65
  rdoc.rdoc_dir = 'rdoc'
66
66
  rdoc.title = "#{name} #{version}"
@@ -5,8 +5,9 @@ files:
5
5
  - /opt/misc/*.log
6
6
  - /var/log/mysqld.log
7
7
  - /var/run/mysqld/mysqld-slow.log
8
- hostname: www42 # override OS hostname
8
+ hostname: www42 # override OS hostname
9
9
  parse_fields: syslog # predefined regex name or double-quoted regex
10
+ prepend: '0xDEADBEEF: ' # prepend this before every log message
10
11
  exclude_patterns:
11
12
  - exclude this
12
13
  - \d+ things
@@ -2,6 +2,8 @@ description "Monitor files and send to remote syslog"
2
2
  start on runlevel [2345]
3
3
  stop on runlevel [!2345]
4
4
 
5
+ respawn
6
+
5
7
  pre-start exec /usr/bin/test -e /etc/log_files.yml
6
8
 
7
9
  exec /var/lib/gems/1.8/bin/remote_syslog -D --tls
@@ -1,4 +1,4 @@
1
1
  module RemoteSyslog
2
- VERSION = "1.6.9"
2
+ VERSION = "1.6.10'
3
3
  end
4
4
 
@@ -27,7 +27,7 @@ module RemoteSyslog
27
27
  attr_accessor :facility, :severity, :hostname
28
28
 
29
29
  # Other settings
30
- attr_accessor :strip_color, :parse_fields
30
+ attr_accessor :strip_color, :parse_fields, :prepend
31
31
 
32
32
  # Exclude messages matching pattern
33
33
  attr_accessor :exclude_pattern
@@ -118,7 +118,7 @@ module RemoteSyslog
118
118
  :facility => @facility, :severity => @severity,
119
119
  :strip_color => @strip_color, :hostname => @hostname,
120
120
  :parse_fields => @parse_fields, :exclude_pattern => @exclude_pattern,
121
- :max_message_size => max_message_size)
121
+ :prepend => @prepend, :max_message_size => max_message_size)
122
122
 
123
123
  files.each do |file|
124
124
  RemoteSyslog::GlobWatch.new(file, @glob_check_interval,
@@ -239,6 +239,10 @@ module RemoteSyslog
239
239
  if config['new_file_check_interval']
240
240
  @agent.glob_check_interval = config['new_file_check_interval']
241
241
  end
242
+
243
+ if config['prepend']
244
+ @agent.prepend = config['prepend']
245
+ end
242
246
  end
243
247
 
244
248
  def run
@@ -11,6 +11,7 @@ module RemoteSyslog
11
11
  @parse_fields = options[:parse_fields]
12
12
  @strip_color = options[:strip_color]
13
13
  @exclude_pattern = options[:exclude_pattern]
14
+ @prepend = options[:prepend]
14
15
  @max_message_size = options[:max_message_size] || 1024
15
16
 
16
17
  @packet = SyslogProtocol::Packet.new
@@ -34,6 +35,7 @@ module RemoteSyslog
34
35
  return if @exclude_pattern && message =~ @exclude_pattern
35
36
 
36
37
  message = message.gsub(COLORED_REGEXP, '') if @strip_color
38
+ message = @prepend + message if @prepend
37
39
 
38
40
  packet = @packet.dup
39
41
  packet.content = message
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  ## If your rubyforge_project name is different, then edit it and comment out
9
9
  ## the sub! line in the Rakefile
10
10
  s.name = 'remote_syslog'
11
- s.version = '1.6.9'
12
- s.date = '2012-11-08'
11
+ s.version = '1.6.10'
12
+ s.date = '2013-01-14'
13
13
  s.rubyforge_project = 'remote_syslog'
14
14
 
15
15
  ## Make sure your summary is short. The description may be as long
@@ -78,6 +78,7 @@ Gem::Specification.new do |s|
78
78
  lib/remote_syslog/tls_endpoint.rb
79
79
  lib/remote_syslog/udp_endpoint.rb
80
80
  remote_syslog.gemspec
81
+ test/unit/message_generator_test.rb
81
82
  ]
82
83
  # = MANIFEST =
83
84
 
@@ -0,0 +1,14 @@
1
+ require 'test/unit'
2
+ require 'remote_syslog/message_generator'
3
+
4
+ class MessageGeneratorTest < Test::Unit::TestCase
5
+ def test_prepend_prepend
6
+ socket = []
7
+ def socket.write(packet)
8
+ self << packet
9
+ end
10
+ generator = RemoteSyslog::MessageGenerator.new(socket, {:prepend => 'crazy_prefix '})
11
+ generator.transmit("tag", "message")
12
+ assert_match /crazy_prefix /, socket[0]
13
+ end
14
+ end
metadata CHANGED
@@ -1,119 +1,133 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: remote_syslog
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 6
8
- - 9
9
- version: 1.6.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.10
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Troy Davis
13
9
  - Eric Lindvall
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2012-11-08 00:00:00 -08:00
19
- default_executable: remote_syslog
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2013-01-14 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: servolux
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
31
23
  type: :runtime
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: file-tail
35
24
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- segments:
41
- - 0
42
- version: "0"
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: file-tail
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
43
39
  type: :runtime
44
- version_requirements: *id002
45
- - !ruby/object:Gem::Dependency
46
- name: eventmachine
47
40
  prerelease: false
48
- requirement: &id003 !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- segments:
53
- - 0
54
- - 12
55
- - 10
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: eventmachine
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
56
54
  version: 0.12.10
57
55
  - - <
58
- - !ruby/object:Gem::Version
59
- segments:
60
- - 1
61
- - 1
62
- version: "1.1"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.1'
63
58
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: eventmachine-tail
67
59
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
- - 6
75
- - 4
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 0.12.10
66
+ - - <
67
+ - !ruby/object:Gem::Version
68
+ version: '1.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: eventmachine-tail
71
+ requirement: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
76
  version: 0.6.4
77
77
  type: :runtime
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: syslog_protocol
81
78
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- requirements:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: 0.6.4
85
+ - !ruby/object:Gem::Dependency
86
+ name: syslog_protocol
87
+ requirement: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
84
90
  - - ~>
85
- - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
- - 9
89
- - 2
91
+ - !ruby/object:Gem::Version
90
92
  version: 0.9.2
91
93
  type: :runtime
92
- version_requirements: *id005
93
- - !ruby/object:Gem::Dependency
94
- name: em-resolv-replace
95
94
  prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- segments:
101
- - 0
102
- version: "0"
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 0.9.2
101
+ - !ruby/object:Gem::Dependency
102
+ name: em-resolv-replace
103
+ requirement: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
103
109
  type: :runtime
104
- version_requirements: *id006
105
- description: Lightweight daemon to tail one or more log files and transmit UDP syslog messages to a remote syslog host (centralized log aggregation). Generates UDP packets itself instead of depending on a system syslog daemon, so it doesn't affect system-wide logging configuration.
106
- email:
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ description: Lightweight daemon to tail one or more log files and transmit UDP syslog
118
+ messages to a remote syslog host (centralized log aggregation). Generates UDP packets
119
+ itself instead of depending on a system syslog daemon, so it doesn't affect system-wide
120
+ logging configuration.
121
+ email:
107
122
  - troy@sevenscale.com
108
123
  - eric@sevenscale.com
109
- executables:
124
+ executables:
110
125
  - remote_syslog
111
126
  extensions: []
112
-
113
- extra_rdoc_files:
127
+ extra_rdoc_files:
114
128
  - README.md
115
129
  - LICENSE
116
- files:
130
+ files:
117
131
  - Gemfile
118
132
  - LICENSE
119
133
  - README.md
@@ -136,35 +150,31 @@ files:
136
150
  - lib/remote_syslog/tls_endpoint.rb
137
151
  - lib/remote_syslog/udp_endpoint.rb
138
152
  - remote_syslog.gemspec
139
- has_rdoc: true
153
+ - test/unit/message_generator_test.rb
140
154
  homepage: http://github.com/papertrail/remote_syslog
141
155
  licenses: []
142
-
143
156
  post_install_message:
144
- rdoc_options:
157
+ rdoc_options:
145
158
  - --charset=UTF-8
146
- require_paths:
159
+ require_paths:
147
160
  - lib
148
- required_ruby_version: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- segments:
153
- - 0
154
- version: "0"
155
- required_rubygems_version: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- segments:
160
- - 0
161
- version: "0"
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
162
173
  requirements: []
163
-
164
174
  rubyforge_project: remote_syslog
165
- rubygems_version: 1.3.6
175
+ rubygems_version: 1.8.24
166
176
  signing_key:
167
177
  specification_version: 2
168
- summary: Monitor plain text log file(s) for new entries and send to remote syslog collector
178
+ summary: Monitor plain text log file(s) for new entries and send to remote syslog
179
+ collector
169
180
  test_files: []
170
-