Class: INatGet::App::Server::Console
- Inherits:
-
INatGet::App::Server
- Object
- INatGet::App::Server
- INatGet::App::Server::Console
- Defined in:
- lib/inat-get/app/core/console.rb
Constant Summary collapse
- SEV_ICON =
{ Logger::Severity::DEBUG => '📓', Logger::Severity::INFO => '📢', Logger::Severity::WARN => '🔔', Logger::Severity::ERROR => '🚨', Logger::Severity::FATAL => '❌' }
Instance Attribute Summary
Attributes inherited from INatGet::App::Server
Instance Method Summary collapse
- #console_log(severity, message, progname, prog_key, pid) ⇒ Object private
- #file_log(severity, message, progname, prog_key) ⇒ Object private
-
#initialize(socket_path, **params) ⇒ Console
constructor
A new instance of Console.
- #log(severity, message, progname, **opts) ⇒ Object
- #prog_key(progname) ⇒ Object private
- #register(**opts) ⇒ Object
- #update(**opts) ⇒ Object
Methods inherited from INatGet::App::Server
#after_loop, #before_loop, create, #on_error, #process_msg, #run, used?, wait_answer?
Constructor Details
#initialize(socket_path, **params) ⇒ Console
Returns a new instance of Console.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/inat-get/app/core/console.rb', line 13 def initialize socket_path, **params super(socket_path, **params) @table = IS::Term::StatusTable::instance @table.configure do column :icon, func: lambda { |row| row[:_active] ? "\e[1m[ ]" : "[✔]" } separator ' ' column :_sender_pid, id: true, align: :right separator ' ' column :name separator ' ' column :status, align: :center separator ' ' column :current, align: :right, summary: :current separator ' of ' column :total, align: :left, summary: :total separator ' ' column :percent, align: :right, func: :percent, format: '%d%%', summary: :percent separator ' ' column :estimated, func: :estimated, align: :right, format: :duration, summary: :elapsed separator ' ' column :speed, func: :speed, format: '%.2f r/s', align: :right, summary: :speed separator ' ' column :message, summary: :value summary true, message: '' end if @config.dig(:logs, :file, :enable) filename = @config.dig(:logs, :file, :enable) @sys_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :sys) @api_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :api) @wrk_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :wrk) end @log_levels = { sys: Logger::Severity::coerce(@config.dig(:logs, :screen, :sys)), api: Logger::Severity::coerce(@config.dig(:logs, :screen, :api)), wrk: Logger::Severity::coerce(@config.dig(:logs, :screen, :wrk)) } end |
Instance Method Details
#console_log(severity, message, progname, prog_key, pid) ⇒ Object (private)
99 100 101 102 103 104 105 106 107 |
# File 'lib/inat-get/app/core/console.rb', line 99 def console_log severity, , progname, prog_key, pid if severity >= @log_levels[prog_key] if prog_key == :wrk @table.update _sender_pid: pid, message: "#{ SEV_ICON[severity] } #{ }" else @table.summary message: "#{ SEV_ICON[severity] } [#{ progname }] #{ }" end end end |
#file_log(severity, message, progname, prog_key) ⇒ Object (private)
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/inat-get/app/core/console.rb', line 80 def file_log severity, , progname, prog_key case prog_key when :api @api_logger.log severity, , progname when :wrk @wrk_logger.log severity, , progname else @sys_logger.log severity, , progname end end |
#log(severity, message, progname, **opts) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/inat-get/app/core/console.rb', line 60 def log severity, , progname, **opts key = prog_key progname pid = opts[:_sender_pid] console_log severity, , progname, key, pid file_log severity, , progname, key if @config.dig(:logs, :file, :enable) true end |
#prog_key(progname) ⇒ Object (private)
70 71 72 73 74 75 76 77 78 |
# File 'lib/inat-get/app/core/console.rb', line 70 def prog_key progname if progname.nil? || progname == '' :sys elsif progname == 'SYS' || progname == 'API' progname.downcase.to_sym else :wrk end end |
#register(**opts) ⇒ Object
52 53 54 |
# File 'lib/inat-get/app/core/console.rb', line 52 def register **opts @table.append(**opts) end |
#update(**opts) ⇒ Object
56 57 58 |
# File 'lib/inat-get/app/core/console.rb', line 56 def update **opts @table.update(**opts) end |