Class: QuickbaseLogger::Logger
- Inherits:
-
Object
- Object
- QuickbaseLogger::Logger
- Includes:
- QuickbaseRecord::Model
- Defined in:
- lib/quickbase_logger/logger.rb
Instance Attribute Summary collapse
-
#purge_frequency ⇒ Object
Returns the value of attribute purge_frequency.
-
#text_logger ⇒ Object
Returns the value of attribute text_logger.
Instance Method Summary collapse
- #error(message) ⇒ Object
- #info(message) ⇒ Object
-
#initialize(options = {}) ⇒ Logger
constructor
A new instance of Logger.
- #log_to_quickbase ⇒ Object
- #purge_logs ⇒ Object
- #warn(message) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Logger
Returns a new instance of Logger.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/quickbase_logger/logger.rb', line 9 def initialize(={}) raise ArgumentError.new("QuickbaseLogger::Logger.new must receive a :related_script argument.") unless [:related_script] @log = [] @start = "#{formatted_date} #{formatted_time}" @purge_frequency = .fetch(:purge_frequency, 30) file_name = .fetch(:file_name, 'quickbase_logger_default') if !File.directory?(formatted_logger_path) FileUtils::mkdir_p(formatted_logger_path) end @text_logger = ::Logger.new("#{formatted_logger_path}#{file_name}.log", "monthly") # standard ruby Logger instance @text_logger.info("===== #{Date.today.strftime('%m/%d/%Y')} =====") @text_logger.info("START") super() end |
Instance Attribute Details
#purge_frequency ⇒ Object
Returns the value of attribute purge_frequency.
7 8 9 |
# File 'lib/quickbase_logger/logger.rb', line 7 def purge_frequency @purge_frequency end |
#text_logger ⇒ Object
Returns the value of attribute text_logger.
7 8 9 |
# File 'lib/quickbase_logger/logger.rb', line 7 def text_logger @text_logger end |
Instance Method Details
#error(message) ⇒ Object
53 54 55 |
# File 'lib/quickbase_logger/logger.rb', line 53 def error() log << "Error [#{formatted_time}]: #{}" end |
#info(message) ⇒ Object
45 46 47 |
# File 'lib/quickbase_logger/logger.rb', line 45 def info() log << "Info [#{formatted_time}]: #{}" end |
#log_to_quickbase ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/quickbase_logger/logger.rb', line 29 def log_to_quickbase raise ArgumentError.new("#log_to_quickbase() must be given a block. Code run inside that block will be logged to the QuickBase application.") unless block_given? begin yield log_success_to_text_file log_success_to_quickbase rescue => err log_failure_to_text_file(err) log_failure_to_quickbase(err) raise err end purge_logs end |
#purge_logs ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/quickbase_logger/logger.rb', line 57 def purge_logs purge_date = Date.today - purge_frequency.days purge_date = purge_date.strftime("%m/%d/%Y") = self.class.fields[:related_script].fid begin qb_client.purge_records(self.class.dbid, {query: "{#{}.EX.#{}}AND{1.OBF.#{purge_date}}"}) rescue StandardError => err text_logger.error("--- FAILED TO PURGE OLD RECORDS ---") text_logger.error(err) text_logger.error("BACKTRACE:\n\t#{err.backtrace.slice(0, 10).join("\n\t")}") raise err end end |
#warn(message) ⇒ Object
49 50 51 |
# File 'lib/quickbase_logger/logger.rb', line 49 def warn() log << "Warn [#{formatted_time}]: #{}" end |