mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
add punct filter
This commit is contained in:
parent
fce464d021
commit
f8228726fa
2 changed files with 58 additions and 0 deletions
40
lib/logstash/filters/punct.rb
Normal file
40
lib/logstash/filters/punct.rb
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# encoding: utf-8
|
||||||
|
require "logstash/filters/base"
|
||||||
|
require "logstash/namespace"
|
||||||
|
|
||||||
|
# The split filter is for splitting multiline messages into separate events.
|
||||||
|
#
|
||||||
|
# An example use case of this filter is for taking output from the 'exec' input
|
||||||
|
# which emits one event for the whole output of a command and splitting that
|
||||||
|
# output by newline - making each line an event.
|
||||||
|
#
|
||||||
|
# The end result of each split is a complete copy of the event
|
||||||
|
# with only the current split section of the given field changed.
|
||||||
|
class LogStash::Filters::Punct < LogStash::Filters::Base
|
||||||
|
|
||||||
|
config_name "punct"
|
||||||
|
milestone 1
|
||||||
|
|
||||||
|
# The field which value is split by the terminator
|
||||||
|
config :field, :validate => :string, :default => "message"
|
||||||
|
|
||||||
|
public
|
||||||
|
def register
|
||||||
|
# Nothing to do
|
||||||
|
end # def register
|
||||||
|
|
||||||
|
public
|
||||||
|
def filter(event)
|
||||||
|
return unless filter?(event)
|
||||||
|
|
||||||
|
# events = []
|
||||||
|
|
||||||
|
original_value = event[@field]
|
||||||
|
|
||||||
|
# If for some reason the field is an array of values, take the first only.
|
||||||
|
original_value = original_value.first if original_value.is_a?(Array)
|
||||||
|
punct = original_value.tr('A-Za-z0-9 \t','')
|
||||||
|
event["punct"] = punct
|
||||||
|
# event.cancel
|
||||||
|
end # def filter
|
||||||
|
end # class LogStash::Filters::Split
|
18
spec/filters/punct.rb
Normal file
18
spec/filters/punct.rb
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
require "test_utils"
|
||||||
|
require "logstash/filters/punct"
|
||||||
|
|
||||||
|
describe LogStash::Filters::Punct do
|
||||||
|
extend LogStash::RSpec
|
||||||
|
|
||||||
|
describe "all defaults" do
|
||||||
|
config <<-CONFIG
|
||||||
|
filter {
|
||||||
|
punct { }
|
||||||
|
}
|
||||||
|
CONFIG
|
||||||
|
|
||||||
|
sample "PHP Warning: json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /data1/sinawap/code/weibov4_wap/control/h5/main/trends.php on line 233" do
|
||||||
|
insist { subject["punct"] } == ":_()[<='.-'>.-</>]:-////_////."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue