Logstash Logger 项目教程
1. 项目的目录结构及介绍
Logstash Logger 项目的目录结构如下:
logstash-logger/
├── bin/
├── lib/
│ ├── logstash-logger/
│ │ ├── formatter.rb
│ │ ├── version.rb
│ │ └── ...
│ └── logstash-logger.rb
├── spec/
│ ├── logstash-logger_spec.rb
│ └── ...
├── .gitignore
├── .rspec
├── .travis.yml
├── Gemfile
├── LICENSE.txt
├── logstash-logger.gemspec
├── README.md
└── Rakefile
目录介绍:
- bin/: 包含可执行文件。
- lib/: 包含项目的核心代码,其中
logstash-logger.rb
是主文件。 - spec/: 包含测试文件,用于测试项目的功能。
- .gitignore: 指定 Git 忽略的文件和目录。
- .rspec: RSpec 配置文件。
- .travis.yml: Travis CI 配置文件。
- Gemfile: 依赖管理文件。
- LICENSE.txt: 项目许可证。
- logstash-logger.gemspec: 用于构建和发布 Gem 的规范文件。
- README.md: 项目说明文档。
- Rakefile: Rake 任务配置文件。
2. 项目的启动文件介绍
项目的启动文件是 lib/logstash-logger.rb
。这个文件是 Logstash Logger 的主入口,负责加载项目的其他模块和初始化日志记录器。
require 'logstash-logger/version'
require 'logstash-logger/formatter'
require 'logstash-logger/logger'
require 'logstash-logger/configuration'
require 'logstash-logger/device'
require 'logstash-logger/multi_logger'
require 'logstash-logger/railtie' if defined?(Rails)
3. 项目的配置文件介绍
项目的配置文件主要是 logstash-logger.gemspec
和 Gemfile
。
logstash-logger.gemspec
这个文件定义了 Gem 的元数据和依赖项。
Gem::Specification.new do |spec|
spec.name = "logstash-logger"
spec.version = LogStashLogger::VERSION
spec.authors = ["David Butler"]
spec.email = ["dwbutler@ucla.edu"]
spec.description = %q{Ruby logger that writes directly to LogStash}
spec.summary = %q{LogStash Logger for Ruby and Rails}
spec.homepage = "https://github.com/dwbutler/logstash-logger"
spec.license = "MIT"
spec.files = `git ls-files`.split($/)
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
spec.add_dependency "logstash-event", "~> 1.2"
spec.add_development_dependency "appraisal"
spec.add_development_dependency "aws-sdk-firehose"
spec.add_development_dependency "aws-sdk-kinesis"
spec.add_development_dependency "poseidon"
spec.add_development_dependency "pry"
spec.add_development_dependency "rails"
spec.add_development_dependency "rake"
spec.add_development_dependency "redis"
spec.add_development_dependency "rspec", ">= 3"
spec.add_development_dependency "rubocop"
spec.add_development_dependency "wwtd"
end
Gemfile
这个文件定义了项目的依赖项。
source 'https://rubygems.org'
gem 'logstash-logger'
group :development, :test do
gem 'rspec'
gem 'rake