You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
654 B
19 lines
654 B
module SemanticLogger
|
|
# Manage a collection of appenders.
|
|
class Appenders < Concurrent::Array
|
|
def close
|
|
closed_appenders = []
|
|
each do |appender|
|
|
logger.trace "Closing appender: #{appender.name}"
|
|
closed_appenders << appender
|
|
appender.flush
|
|
appender.close
|
|
rescue Exception => e
|
|
logger.error "Failed to close appender: #{appender.name}", e
|
|
end
|
|
# Delete appenders outside the #each above which prevents changes during iteration.
|
|
closed_appenders.each { |appender| delete(appender) }
|
|
logger.trace 'All appenders closed and removed from appender list'
|
|
end
|
|
end
|
|
end
|