mirror of
https://github.com/discourse/discourse.git
synced 2025-02-05 19:11:13 +00:00
8e10878e1a
This commit rewrites `DiscourseLogstashLogger` to not be an instance of `LogstashLogger`. The reason we don't want it to be an instance of `LogstashLogger` is because we want the new logger to be chained to Logster's logger which can then pass down useful information like the request's env and error backtraces which Logster has already gathered. Note that this commit does not bother to maintain backwards compatibility and drops the `LOGSTASH_URI` and `UNICORN_LOGSTASH_URI` ENV variables which were previously used to configure the destination in which `logstash-logger` would send the logs to. Instead, we introduce the `ENABLE_LOGSTASH_LOGGER` ENV variable to replace both ENV and remove the need for the log paths to be specified. Note that the previous feature was considered experimental as stated in d888d3c54c4744d52b9d21d3728f5d6dbc132cde and the new feature should be considered experimental as well. The code may be moved into a plugin in the future.
109 lines
3.7 KiB
Ruby
109 lines
3.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Discourse::Application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb
|
|
|
|
# In the development environment your application's code is reloaded on
|
|
# every request. This slows down response time but is perfect for development
|
|
# since you don't have to restart the web server when you make code changes.
|
|
config.cache_classes = false
|
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
|
|
|
config.eager_load = ENV["DISCOURSE_ZEITWERK_EAGER_LOAD"] == "1"
|
|
|
|
# Use the schema_cache.yml file generated during db:migrate (via db:schema:cache:dump)
|
|
config.active_record.use_schema_cache_dump = true
|
|
|
|
# Show full error reports and disable caching
|
|
config.consider_all_requests_local = true
|
|
config.action_controller.perform_caching = false
|
|
|
|
config.action_controller.asset_host = GlobalSetting.cdn_url
|
|
|
|
# Print deprecation notices to the Rails logger
|
|
config.active_support.deprecation = :log
|
|
|
|
# Do not compress assets
|
|
config.assets.compress = false
|
|
|
|
# Don't Digest assets, makes debugging uglier
|
|
config.assets.digest = false
|
|
|
|
config.assets.debug = false
|
|
|
|
config.public_file_server.headers = { "Access-Control-Allow-Origin" => "*" }
|
|
|
|
# Raise an error on page load if there are pending migrations
|
|
config.active_record.migration_error = :page_load
|
|
config.watchable_dirs["lib"] = [:rb]
|
|
|
|
# we recommend you use mailhog https://github.com/mailhog/MailHog
|
|
config.action_mailer.smtp_settings = { address: "localhost", port: 1025 }
|
|
|
|
config.action_mailer.raise_delivery_errors = true
|
|
|
|
config.log_level = ENV["DISCOURSE_DEV_LOG_LEVEL"] if ENV["DISCOURSE_DEV_LOG_LEVEL"]
|
|
|
|
config.active_record.logger = nil if ENV["RAILS_DISABLE_ACTIVERECORD_LOGS"] == "1"
|
|
config.active_record.verbose_query_logs = true if ENV["RAILS_VERBOSE_QUERY_LOGS"] == "1"
|
|
|
|
if defined?(BetterErrors)
|
|
BetterErrors::Middleware.allow_ip! ENV["TRUSTED_IP"] if ENV["TRUSTED_IP"]
|
|
|
|
if defined?(Unicorn) && ENV["UNICORN_WORKERS"].to_i != 1
|
|
# BetterErrors doesn't work with multiple unicorn workers. Disable it to avoid confusion
|
|
Rails.configuration.middleware.delete BetterErrors::Middleware
|
|
end
|
|
end
|
|
|
|
config.load_mini_profiler = true if !ENV["DISABLE_MINI_PROFILER"]
|
|
|
|
if hosts = ENV["DISCOURSE_DEV_HOSTS"]
|
|
Discourse.deprecate("DISCOURSE_DEV_HOSTS is deprecated. Use RAILS_DEVELOPMENT_HOSTS instead.")
|
|
config.hosts.concat(hosts.split(","))
|
|
end
|
|
|
|
require "middleware/turbo_dev"
|
|
config.middleware.insert 0, Middleware::TurboDev
|
|
require "middleware/missing_avatars"
|
|
config.middleware.insert 1, Middleware::MissingAvatars
|
|
|
|
config.enable_anon_caching = false
|
|
require "rbtrace" if RUBY_ENGINE == "ruby"
|
|
|
|
if emails = GlobalSetting.developer_emails
|
|
config.developer_emails = emails.split(",").map(&:downcase).map(&:strip)
|
|
end
|
|
|
|
if ENV["DISCOURSE_SKIP_CSS_WATCHER"] != "1" &&
|
|
(defined?(Rails::Server) || defined?(Puma) || defined?(Unicorn))
|
|
require "stylesheet/watcher"
|
|
STDERR.puts "Starting CSS change watcher"
|
|
@watcher = Stylesheet::Watcher.watch
|
|
end
|
|
|
|
config.after_initialize do
|
|
config.colorize_logging = true if ENV["RAILS_COLORIZE_LOGGING"] == "1"
|
|
|
|
if ENV["RAILS_VERBOSE_QUERY_LOGS"] == "1"
|
|
ActiveRecord::LogSubscriber.backtrace_cleaner.add_silencer do |line|
|
|
line =~ %r{lib/freedom_patches}
|
|
end
|
|
end
|
|
|
|
if ENV["BULLET"]
|
|
Bullet.enable = true
|
|
Bullet.rails_logger = true
|
|
end
|
|
end
|
|
|
|
config.hosts << /\A(([a-z0-9-]+)\.)*localhost(\:\d+)?\Z/
|
|
|
|
config.generators.after_generate do |files|
|
|
parsable_files = files.filter { |file| file.end_with?(".rb") }
|
|
unless parsable_files.empty?
|
|
system("bundle exec rubocop -A --fail-level=E #{parsable_files.shelljoin}", exception: true)
|
|
end
|
|
end
|
|
end
|