Skip to content

Commit 2c73283

Browse files
author
Lucas Bremgartner
committed
Always use codec
Always use codec to format the message part. Detects if the codec is unchanged (plain with no formating set). If this is the case, the config-option 'message' is used as format for the plain codec.
1 parent 7e53a66 commit 2c73283

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

lib/logstash/outputs/syslog.rb

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require "logstash/outputs/base"
33
require "logstash/namespace"
44
require "date"
5+
require "logstash/codecs/plain"
56

67

78
# Send events to a syslog server.
@@ -94,11 +95,14 @@ class LogStash::Outputs::Syslog < LogStash::Outputs::Base
9495
# syslog message format: you can choose between rfc3164 or rfc5424
9596
config :rfc, :validate => ["rfc3164", "rfc5424"], :default => "rfc3164"
9697

97-
# use codec to format message (instead of setting message)
98-
config :usecodec, :validate => :boolean, :default => false
99-
10098
def register
10199
@client_socket = nil
100+
101+
if @codec.instance_of? LogStash::Codecs::Plain
102+
if @codec.config["format"].nil?
103+
@codec = LogStash::Codecs::Plain.new({"format" => @message})
104+
end
105+
end
102106
@codec.on_event(&method(:publish))
103107

104108
facility_code = FACILITY_LABELS.index(@facility)
@@ -110,23 +114,15 @@ def register
110114
end
111115

112116
def receive(event)
113-
if @usecodec
114-
@codec.encode(event)
115-
else
116-
publish(event, nil)
117-
end
117+
@codec.encode(event)
118118
end
119119

120120
def publish(event, payload)
121121
appname = event.sprintf(@appname)
122122
procid = event.sprintf(@procid)
123123
sourcehost = event.sprintf(@sourcehost)
124124

125-
if payload.nil?
126-
message = event.sprintf(@message)
127-
else
128-
message = payload.to_s.gsub(/[\n]/, '\n')
129-
end
125+
message = payload.to_s.gsub(/[\n]/, '\n')
130126

131127
if @is_rfc3164
132128
timestamp = event.sprintf("%{+MMM dd HH:mm:ss}")

logstash-output-syslog.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
2121

2222
# Gem dependencies
2323
s.add_runtime_dependency "logstash-core", ">= 2.0.0.beta2", "< 3.0.0"
24+
s.add_runtime_dependency 'logstash-codec-plain'
2425

2526
s.add_development_dependency 'logstash-devutils'
26-
s.add_development_dependency 'logstash-codec-plain'
2727
s.add_development_dependency 'logstash-codec-json'
2828
end
2929

spec/outputs/syslog_spec.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require "logstash/devutils/rspec/spec_helper"
44
require "logstash/outputs/syslog"
5+
require "logstash/codecs/plain"
56

67
describe LogStash::Outputs::Syslog do
78

@@ -48,15 +49,16 @@
4849
it_behaves_like "syslog output"
4950
end
5051

51-
context "use codec by default plain)" do
52-
let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "usecodec" => true } }
53-
let(:output) { /^<0>.+baz LOGSTASH\[-\]: [0-9TZ:.+-]+ baz bar\n/m }
52+
context "use plain codec with format set" do
53+
let(:plain) { LogStash::Codecs::Plain.new({"format" => "%{host} %{message}"}) }
54+
let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "codec" => plain} }
55+
let(:output) { /^<0>.+baz LOGSTASH\[-\]: baz bar\n/m }
5456

5557
it_behaves_like "syslog output"
5658
end
5759

5860
context "use codec json" do
59-
let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "usecodec" => true, "codec" => "json" } }
61+
let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "codec" => "json" } }
6062
let(:output) { /^<0>.+baz LOGSTASH\[-\]: {\"message\":\"bar\",\"host\":\"baz\",\"@version\":\"1\",\"@timestamp\":\"[0-9TZ:.+-]+\"}\n/m }
6163

6264
it_behaves_like "syslog output"

0 commit comments

Comments
 (0)