remote_syslog 1.6.9 → 1.6.10

Sign up to get free protection for your applications and to get access to all the features.
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
-