Class: Kitchen::Logger::StructuredLogdevLogger
- Inherits:
-
Object
- Object
- Kitchen::Logger::StructuredLogdevLogger
- Includes:
- Logger::Severity
- Defined in:
- lib/kitchen/logger.rb
Overview
Internal class that emits one JSON object per log event.
Constant Summary collapse
- SEVERITY_NAMES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Maps stdlib Logger severity constants to their lowercase string names as they appear in emitted JSON events.
{ DEBUG => "debug", INFO => "info", WARN => "warn", ERROR => "error", FATAL => "fatal", UNKNOWN => "unknown", }.freeze
Instance Attribute Summary collapse
-
#datetime_format ⇒ Object
Returns the value of attribute datetime_format.
-
#level ⇒ Object
Returns the value of attribute level.
-
#progname ⇒ Object
Returns the value of attribute progname.
Instance Method Summary collapse
-
#<<(msg) ⇒ void
private
Appends raw stream output, emitting a structured event per complete line.
-
#add(severity, message = nil, progname = nil) { ... } ⇒ true
private
Writes a log event if the given severity meets the current level.
-
#banner(msg = nil) { ... } ⇒ void
private
Writes a banner event at info severity.
-
#close ⇒ void
private
Closes the underlying log device if it is open and supports closing.
-
#debug(msg = nil) { ... } ⇒ true
private
Writes a log event at debug severity.
- #debug? ⇒ Boolean
-
#error(msg = nil) { ... } ⇒ true
private
Writes a log event at error severity.
- #error? ⇒ Boolean
-
#fatal(msg = nil) { ... } ⇒ true
private
Writes a log event at fatal severity.
- #fatal? ⇒ Boolean
-
#info(msg = nil) { ... } ⇒ true
private
Writes a log event at info severity.
- #info? ⇒ Boolean
-
#initialize(logdev, metadata_provider) ⇒ StructuredLogdevLogger
constructor
A new instance of StructuredLogdevLogger.
-
#stream(severity, msg) ⇒ void
private
Writes a stream event at the given severity.
-
#unknown(msg = nil) { ... } ⇒ true
private
Writes a log event at unknown severity.
-
#warn(msg = nil) { ... } ⇒ true
private
Writes a log event at warn severity.
- #warn? ⇒ Boolean
Constructor Details
#initialize(logdev, metadata_provider) ⇒ StructuredLogdevLogger
Returns a new instance of StructuredLogdevLogger.
652 653 654 655 656 657 658 659 |
# File 'lib/kitchen/logger.rb', line 652 def initialize(logdev, ) @logdev = logdev @metadata_provider = @level = INFO @progname = "Kitchen" @sequence = 0 @mutex = Mutex.new end |
Instance Attribute Details
#datetime_format ⇒ Object
Returns the value of attribute datetime_format.
650 651 652 |
# File 'lib/kitchen/logger.rb', line 650 def datetime_format @datetime_format end |
#level ⇒ Object
Returns the value of attribute level.
648 649 650 |
# File 'lib/kitchen/logger.rb', line 648 def level @level end |
#progname ⇒ Object
Returns the value of attribute progname.
649 650 651 |
# File 'lib/kitchen/logger.rb', line 649 def progname @progname end |
Instance Method Details
#<<(msg) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Appends raw stream output, emitting a structured event per complete line.
690 691 692 |
# File 'lib/kitchen/logger.rb', line 690 def <<(msg) line_buffer << msg end |
#add(severity, message = nil, progname = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event if the given severity meets the current level.
672 673 674 675 676 677 678 679 680 681 682 |
# File 'lib/kitchen/logger.rb', line 672 def add(severity, = nil, progname = nil) severity ||= UNKNOWN return true if severity < level = if .nil? block_given? ? yield : progname else end write_event(severity, , "log") end |
#banner(msg = nil) { ... } ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Writes a banner event at info severity.
701 702 703 704 |
# File 'lib/kitchen/logger.rb', line 701 def (msg = nil) = block_given? ? yield : msg write_event(INFO, , "banner") unless INFO < level end |
#close ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Closes the underlying log device if it is open and supports closing.
808 809 810 811 812 813 814 815 816 |
# File 'lib/kitchen/logger.rb', line 808 def close return unless @logdev.respond_to?(:close) if @logdev.respond_to?(:closed?) @logdev.close unless @logdev.closed? else @logdev.close end end |
#debug(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at debug severity.
725 726 727 |
# File 'lib/kitchen/logger.rb', line 725 def debug(msg = nil, &block) add(DEBUG, msg, nil, &block) end |
#debug? ⇒ Boolean
784 785 786 |
# File 'lib/kitchen/logger.rb', line 784 def debug? level <= DEBUG end |
#error(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at error severity.
758 759 760 |
# File 'lib/kitchen/logger.rb', line 758 def error(msg = nil, &block) add(ERROR, msg, nil, &block) end |
#error? ⇒ Boolean
796 797 798 |
# File 'lib/kitchen/logger.rb', line 796 def error? level <= ERROR end |
#fatal(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at fatal severity.
769 770 771 |
# File 'lib/kitchen/logger.rb', line 769 def fatal(msg = nil, &block) add(FATAL, msg, nil, &block) end |
#fatal? ⇒ Boolean
800 801 802 |
# File 'lib/kitchen/logger.rb', line 800 def fatal? level <= FATAL end |
#info(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at info severity.
736 737 738 |
# File 'lib/kitchen/logger.rb', line 736 def info(msg = nil, &block) add(INFO, msg, nil, &block) end |
#info? ⇒ Boolean
788 789 790 |
# File 'lib/kitchen/logger.rb', line 788 def info? level <= INFO end |
#stream(severity, msg) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Writes a stream event at the given severity.
713 714 715 716 |
# File 'lib/kitchen/logger.rb', line 713 def stream(severity, msg) severity = severity_const(severity) write_event(severity, msg, "stream") unless severity < level end |
#unknown(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at unknown severity.
780 781 782 |
# File 'lib/kitchen/logger.rb', line 780 def unknown(msg = nil, &block) add(UNKNOWN, msg, nil, &block) end |
#warn(msg = nil) { ... } ⇒ true
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Writes a log event at warn severity.
747 748 749 |
# File 'lib/kitchen/logger.rb', line 747 def warn(msg = nil, &block) add(WARN, msg, nil, &block) end |
#warn? ⇒ Boolean
792 793 794 |
# File 'lib/kitchen/logger.rb', line 792 def warn? level <= WARN end |