Start of setup for Logstash's log4j2 integration
This commit is contained in:
parent
3bdd8ef3a8
commit
238ef153e4
27
Rakefile
27
Rakefile
|
@ -9,30 +9,3 @@ task :install_jars do
|
||||||
ENV['JARS_VENDOR'] = 'false'
|
ENV['JARS_VENDOR'] = 'false'
|
||||||
Jars::Installer.new.vendor_jars!(false)
|
Jars::Installer.new.vendor_jars!(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def colourize(text, color_code)
|
|
||||||
"\e[#{color_code}m#{text}\e[0m"
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Pre-release checks'
|
|
||||||
task :pre_release_checks do
|
|
||||||
|
|
||||||
if `git status --porcelain`.chomp.length > 0
|
|
||||||
warn colourize(' ✘ ', 31) + 'You have unstaged or uncommitted changes! Please only release from a clean working directory!'
|
|
||||||
else
|
|
||||||
puts colourize(" ✔ ", 32) + ' No un-staged commits'
|
|
||||||
end
|
|
||||||
|
|
||||||
spec = Gem::Specification::load("logstash-output-jdbc.gemspec")
|
|
||||||
expected_tag_name = "v#{spec.version}"
|
|
||||||
|
|
||||||
current_tag_name = `git describe --exact-match --tags HEAD 2>&1`.chomp
|
|
||||||
if $?.success? and current_tag_name == expected_tag_name
|
|
||||||
puts colourize(' ✔ ', 32) + 'Tag matches current HEAD'
|
|
||||||
elsif $?.success? and current_tag_name == expected_tag_name
|
|
||||||
warn colourize(' ✘ ', 31) + "Expected git tag to be '#{expected_tag_name}', but got '#{current_tag_name}'."
|
|
||||||
else
|
|
||||||
warn colourize(' ✘ ', 31) + "Expected git tag to be '#{expected_tag_name}, but got nothing."
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
18
examples/cockroachdb.md
Normal file
18
examples/cockroachdb.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Example: CockroachDB
|
||||||
|
- Tested using postgresql-9.4.1209.jre6.jar
|
||||||
|
- **Warning** cockroach is known to throw a warning on connection test (at time of writing), thus the connection test is explicitly disabled.
|
||||||
|
|
||||||
|
```
|
||||||
|
input
|
||||||
|
{
|
||||||
|
stdin { }
|
||||||
|
}
|
||||||
|
output {
|
||||||
|
jdbc {
|
||||||
|
driver_jar_path => '/opt/postgresql-9.4.1209.jre6.jar'
|
||||||
|
connection_test => false
|
||||||
|
connection_string => 'jdbc:postgresql://127.0.0.1:26257/test?user=root'
|
||||||
|
statement => [ "INSERT INTO log (host, timestamp, message) VALUES(?, CAST (? AS timestamp), ?)", "host", "@timestamp", "message" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
17
log4j2.xml
Normal file
17
log4j2.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Configuration>
|
||||||
|
<Appenders>
|
||||||
|
<File name="file" fileName="log4j2.log">
|
||||||
|
<PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||||
|
</File>
|
||||||
|
</Appenders>
|
||||||
|
|
||||||
|
<Loggers>
|
||||||
|
<!-- If we need to figure out whats happening for development purposes, disable this -->
|
||||||
|
<Logger name="com.zaxxer.hikari" level="off" />
|
||||||
|
|
||||||
|
<Root level="debug">
|
||||||
|
<AppenderRef ref="file"/>
|
||||||
|
</Root>
|
||||||
|
</Loggers>
|
||||||
|
</Configuration>
|
|
@ -22,11 +22,11 @@ Gem::Specification.new do |s|
|
||||||
s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'output' }
|
s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'output' }
|
||||||
|
|
||||||
# Gem dependencies
|
# Gem dependencies
|
||||||
s.add_runtime_dependency 'logstash-core-plugin-api', '~> 2.0'
|
s.add_runtime_dependency 'logstash-core-plugin-api', '>= 1.60', '<= 2.99'
|
||||||
s.add_runtime_dependency 'stud'
|
s.add_runtime_dependency 'stud'
|
||||||
s.add_runtime_dependency 'logstash-codec-plain'
|
s.add_runtime_dependency 'logstash-codec-plain'
|
||||||
|
|
||||||
s.requirements << "jar 'com.zaxxer:HikariCP', '2.4.6'"
|
s.requirements << "jar 'com.zaxxer:HikariCP', '2.4.7'"
|
||||||
s.requirements << "jar 'org.slf4j:slf4j-log4j12', '1.7.21'"
|
s.requirements << "jar 'org.slf4j:slf4j-log4j12', '1.7.21'"
|
||||||
|
|
||||||
s.add_development_dependency 'jar-dependencies'
|
s.add_development_dependency 'jar-dependencies'
|
||||||
|
|
|
@ -20,7 +20,9 @@ RSpec.shared_context 'when initializing' do
|
||||||
end
|
end
|
||||||
|
|
||||||
RSpec.shared_context 'when outputting messages' do
|
RSpec.shared_context 'when outputting messages' do
|
||||||
let(:logger) { double("logger") }
|
let(:logger) {
|
||||||
|
double("logger")
|
||||||
|
}
|
||||||
|
|
||||||
let(:jdbc_test_table) do
|
let(:jdbc_test_table) do
|
||||||
'logstash_output_jdbc_test'
|
'logstash_output_jdbc_test'
|
||||||
|
@ -50,7 +52,16 @@ RSpec.shared_context 'when outputting messages' do
|
||||||
|
|
||||||
let(:plugin) do
|
let(:plugin) do
|
||||||
# Setup logger
|
# Setup logger
|
||||||
expect(LogStash::Ouputs::Jdbc).to receive(:logger).and_return(logger).at_least(:once)
|
allow(LogStash::Outputs::Jdbc).to receive(:logger).and_return(logger)
|
||||||
|
|
||||||
|
# XXX: Suppress reflection logging. There has to be a better way around this.
|
||||||
|
allow(logger).to receive(:debug).with(/config LogStash::/)
|
||||||
|
|
||||||
|
# Suppress beta warnings.
|
||||||
|
allow(logger).to receive(:info).with(/Please let us know if you find bugs or have suggestions on how to improve this plugin./)
|
||||||
|
|
||||||
|
# Suppress start up messages.
|
||||||
|
expect(logger).to receive(:info).once.with(/JDBC - Starting up/)
|
||||||
|
|
||||||
# Setup plugin
|
# Setup plugin
|
||||||
output = LogStash::Plugin.lookup('output', 'jdbc').new(jdbc_settings)
|
output = LogStash::Plugin.lookup('output', 'jdbc').new(jdbc_settings)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user