مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
feat: more consistent logging
هذا الالتزام موجود في:
@@ -38,9 +38,11 @@ module Postal
|
||||
require "postal/tracking_middleware"
|
||||
config.middleware.insert_before ActionDispatch::HostAuthorization, Postal::TrackingMiddleware
|
||||
|
||||
config.logger = Postal.logger_for(:rails)
|
||||
|
||||
config.hosts << Postal.config.web.host
|
||||
|
||||
if Postal.config.logging.rails_log == false
|
||||
config.logger = Logger.new("/dev/null")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ module Clockwork
|
||||
|
||||
configure do |config|
|
||||
config[:tz] = "UTC"
|
||||
config[:logger] = Postal.logger_for(:cron)
|
||||
config[:logger] = Postal.logger
|
||||
end
|
||||
|
||||
every 1.minute, "every-1-minutes" do
|
||||
|
||||
@@ -72,12 +72,6 @@ Rails.application.configure do
|
||||
# require 'syslog/logger'
|
||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||
|
||||
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||
logger = ActiveSupport::Logger.new($stdout)
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
end
|
||||
|
||||
# Do not dump schema after migrations.
|
||||
config.active_record.dump_schema_after_migration = false
|
||||
end
|
||||
|
||||
51
config/initializers/logging.rb
Normal file
51
config/initializers/logging.rb
Normal file
@@ -0,0 +1,51 @@
|
||||
begin
|
||||
def add_exception_to_payload(payload, event)
|
||||
return unless exception = event.payload[:exception_object]
|
||||
|
||||
payload[:exception_class] = exception.class.name
|
||||
payload[:exception_message] = exception.message
|
||||
payload[:exception_backtrace] = exception.backtrace[0, 4].join("\n")
|
||||
end
|
||||
|
||||
ActiveSupport::Notifications.subscribe "process_action.action_controller" do |*args|
|
||||
event = ActiveSupport::Notifications::Event.new(*args)
|
||||
|
||||
payload = {
|
||||
event: "request",
|
||||
transaction: event.transaction_id,
|
||||
controller: event.payload[:controller],
|
||||
action: event.payload[:action],
|
||||
format: event.payload[:format],
|
||||
method: event.payload[:method],
|
||||
path: event.payload[:path],
|
||||
request_id: event.payload[:request].request_id,
|
||||
ip_address: event.payload[:request].ip,
|
||||
status: event.payload[:status],
|
||||
view_runtime: event.payload[:view_runtime],
|
||||
db_runtime: event.payload[:db_runtime]
|
||||
}
|
||||
|
||||
add_exception_to_payload(payload, event)
|
||||
|
||||
string = "#{payload[:method]} #{payload[:path]} (#{payload[:status]})"
|
||||
|
||||
if payload[:exception_class]
|
||||
Postal.logger.error(string, **payload)
|
||||
else
|
||||
Postal.logger.info(string, **payload)
|
||||
end
|
||||
end
|
||||
|
||||
ActiveSupport::Notifications.subscribe "deliver.action_mailer" do |*args|
|
||||
event = ActiveSupport::Notifications::Event.new(*args)
|
||||
|
||||
Postal.logger.info({
|
||||
event: "send_email",
|
||||
transaction: event.transaction_id,
|
||||
message_id: event.payload[:message_id],
|
||||
subject: event.payload[:subject],
|
||||
from: event.payload[:from],
|
||||
to: event.payload[:to].is_a?(Array) ? event.payload[:to].join(", ") : event.payload[:to].to_s
|
||||
})
|
||||
end
|
||||
end
|
||||
@@ -1,6 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "postal/config"
|
||||
|
||||
if Postal.config&.smtp
|
||||
ActionMailer::Base.delivery_method = :smtp
|
||||
ActionMailer::Base.smtp_settings = { address: Postal.config.smtp.host, user_name: Postal.config.smtp.username, password: Postal.config.smtp.password, port: Postal.config.smtp.port || 25 }
|
||||
|
||||
@@ -51,13 +51,11 @@ rabbitmq:
|
||||
tls_ca_certificates: <%= ENV.fetch('RABBITMQ_TLS_CA_CERTIFICATES', '/etc/ssl/certs/ca-certificates.crt'.split(',').inspect) %>
|
||||
|
||||
logging:
|
||||
stdout: <%= ENV.fetch('LOGGING_STDOUT', 'false') %>
|
||||
root: <%= ENV.fetch('LOGGING_ROOT', '') %>
|
||||
max_log_file_size: <%= ENV.fetch('LOGGING_MAX_LOG_FILES', '20') %>
|
||||
max_log_files: <%= ENV.fetch('LOGGING_MAX_LOG_FILES', '10') %>
|
||||
rails_log: <%= ENV.fetch('LOGGING_RAILS_LOG', 'false') %>
|
||||
graylog:
|
||||
host: <%= ENV.fetch('GRAYLOG_HOST', '') %>
|
||||
port: <%= ENV.fetch('GRAYLOG_PORT', '12201') %>
|
||||
facility: <%= ENV.fetch('GRAYLOG_FACILITY', 'postal') %>
|
||||
|
||||
workers:
|
||||
threads: <%= ENV.fetch('WORKER_THREADS', '4') %>
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم