The purpose of the lib folder is to have code that doesn't necessary belong in the application but can be shared with other applications. However, we don't have other applications and, if we did, the way to share code between them would be using a gem or even a git submodule. So having both the `app/` and the `lib/` folders is confusing IMHO, and it causes unnecessary problems with autoloading. So we're moving the `lib/` folder to `app/lib/`. Originally, some of these files were in the `app/services/` folder and then they were moved to the `lib/` folder. We're using `app/lib/` instead of `app/services/` so the upgrade is less confusing. There's an exception, though. The `OmniAuth::Strategies::Wordpress` class needs to be available in the Devise initializer. Since this is an initializer and trying to autoload a class here will be problematic when switching to Zeitwerk, we'll keep the `require` clause on top of the Devise initializer in order to load the file and so it will be loaded even if it isn't in the autoload paths anymore.
27 lines
541 B
Ruby
27 lines
541 B
Ruby
class AuthenticationLogger
|
|
@loggers = {}
|
|
|
|
class << self
|
|
def log(message)
|
|
logger.tagged(Time.current) do
|
|
logger.info(message)
|
|
end
|
|
end
|
|
|
|
def path
|
|
Rails.root.join("log", Tenant.subfolder_path, "authentication.log")
|
|
end
|
|
|
|
private
|
|
|
|
def logger
|
|
@loggers[Apartment::Tenant.current] ||= build_logger
|
|
end
|
|
|
|
def build_logger
|
|
FileUtils.mkdir_p(File.dirname(path))
|
|
ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(path, level: :info))
|
|
end
|
|
end
|
|
end
|