# Copyright (c) 2023 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'contrast/agent/reporting/settings/syslog' module Contrast module Agent module Reporting module Settings # this class will hold the security logger settings. class SecurityLogger def initialize @blank = true end # check to see if object is being used # # @return [Boolean] def settings_blank? @blank end # Set the state of settings # # @return [Boolean] def not_blank! @blank = false end # The level at which the agent should log. Overridden by agent.logger.level # if set in a local configuration # # @return log_level [String] [ ERROR, WARN, INFO, DEBUG, TRACE ] def log_level @_log_level ||= Contrast::Utils::ObjectShare::EMPTY_STRING end # set the log level # # @param log_level [String] # @return log_level [String] [ ERROR, WARN, INFO, DEBUG, TRACE ] def log_level= log_level @_log_level = log_level if log_level.is_a?(String) end # Where to log the agent's log file, if set by the user. Overridden by agent.logger.path # if set in a local configuration. # # @return log_file [String] path def log_file @_log_file ||= Contrast::Utils::ObjectShare::EMPTY_STRING end # Set the log file # # @param log_file [String] path # @return log_file [String] path def log_file= log_file @_log_file = log_file if log_file.is_a?(String) end def syslog @_syslog ||= Contrast::Agent::Reporting::Settings::Syslog.new end def to_controlled_hash { level: log_level, path: log_file, syslog: syslog.to_controlled_hash } end end end end end end