# desc “Explaining what the task does”
task :sqlogger => “sqlogger:install” namespace :sqlogger do
desc "install sqlogger to a rails project." task :install do conf_path = Rails.root.join("config").join("initializers").join("sqlogger.rb") if File.exist? conf_path puts "Sqlogger has already installed." puts "For more details, see your config/initializers/sqlogger.rb file." else conf_default_body = <<-EOS
## ignore_payload_names ## set to not logging selected payloads. #Rails.application.config.sqlogger.ignore_payload_names = %w(SCHEMA EXPLAIN)
## ignore_sql_commands ## set to not logging selected payloads. #Rails.application.config.sqlogger.ignore_sql_commands = %w(begin rollback SAVEPOINT RELEASE)
## post_targets: set to logging target. e.g. %w(elasticsearch echo) ## (current only support echo and elasticsearch) #Rails.application.config.sqlogger.post_targets = %w()
## elasticsearch options ## only uses set to logging to elasticsearch on post_targets. #Rails.application.config.sqlogger.elasticsearch.url = “localhost:9200/” #Rails.application.config.sqlogger.elasticsearch.index_name = “sqlogger-metrics” #Rails.application.config.sqlogger.elasticsearch.check_name = “metrics-query” #Rails.application.config.sqlogger.elasticsearch.post_keys = %w(server status pid sql binds dulation payload) #Rails.application.config.sqlogger.elasticsearch.critical_dulation = 10.0 #Rails.application.config.sqlogger.elasticsearch.warning_dulation = 5.0 #Rails.application.config.sqlogger.elasticsearch.ssl_verify_none = false #Rails.application.config.sqlogger.elasticsearch.post_timeout = 1.0 #Rails.application.config.sqlogger.elasticsearch.open_timeout = 1.0 #Rails.application.config.sqlogger.elasticsearch.read_timeout = 1.0 #Rails.application.config.sqlogger.elasticsearch.debug = false
## echo options (sysmem echo to file) ## only uses set to logging to echo on post_targets. #Rails.application.config.sqlogger.echo.file = “log/sqlogger.log” #Rails.application.config.sqlogger.echo.debug = false
EOS File.write(conf_path, conf_default_body) puts "Sqlogger has been successfully installed." puts "For more details, see your config/initializers/sqlogger.rb file." end end
end