userver: components::Logging Class Reference
Loading...
Searching...
No Matches
components::Logging Class Referencefinal

#include <userver/logging/component.hpp>

Detailed Description

Logging component

Allows to configure the default logger and/or additional loggers for your needs.

Static options:

Name Description Default value
file_path path to the log file -
level log verbosity info
format log output format, either tskv or ltsv tskv
flush_level messages of this and higher levels get flushed to the file immediately warning
message_queue_size the size of internal message queue, must be a power of 2 65536
overflow_behavior message handling policy while the queue is full: discard drops messages, block waits until message gets into the queue discard
testsuite-capture if exists, setups additional TCP log sink for testing purposes {}
fs-task-processor task processor for disk I/O operations for this logger fs-task-processor of the loggers component

Logs output

You can specify logger output, in file_path option:

  • Use @stdout to write your logs to standard output stream;
  • Use @stderr to write your logs to standard error stream;
  • Use @null to suppress sending of logs;
  • Use file_name% to write your logs in file. Use USR1 signal or OnLogRotate handler to reopen files after log rotation;
  • Use unix:socket_name% to write your logs to unix socket. Socket must be created before the service starts and closed by listener afert service is shuted down.

testsuite-capture options:

Name Description Default value
host testsuite hostname, e.g. localhost -
port testsuite port -

Static configuration example:

# yaml
logging:
fs-task-processor: fs-task-processor
loggers:
access:
file_path: $access_log_path
overflow_behavior: discard
format: raw
access-tskv:
file_path: $access_tskv_log_path
overflow_behavior: discard
format: raw
default:
file_path: $default_log_path
level: $log_level
level#fallback: debug
overflow_behavior: discard
tracer:
file_path: '@stdout'
overflow_behavior: discard

default section configures the default logger for LOG_*.

Definition at line 79 of file component.hpp.

+ Inheritance diagram for components::Logging:
+ Collaboration diagram for components::Logging:

Public Member Functions

 Logging (const ComponentConfig &, const ComponentContext &)
 The component constructor.
 
logging::LoggerPtr GetLogger (const std::string &name)
 Returns a logger by its name.
 
logging::LoggerPtr GetLoggerOptional (const std::string &name)
 Returns a logger by its name.
 
void StartSocketLoggingDebug (const std::optional< logging::Level > &log_level)
 
void StopSocketLoggingDebug (const std::optional< logging::Level > &log_level)
 
void OnLogRotate ()
 Reopens log files after rotation.
 
void TryReopenFiles ()
 
void WriteStatistics (utils::statistics::Writer &writer) const
 

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
 

Static Public Attributes

static constexpr std::string_view kName = "logging"
 The default name of components::Logging component.
 

Member Function Documentation

◆ GetLogger()

logging::LoggerPtr components::Logging::GetLogger ( const std::string & name)

Returns a logger by its name.

Parameters
nameName of the logger
Returns
Pointer to the Logger instance
Exceptions
std::runtime_errorif logger with this name is not registered

◆ GetLoggerOptional()

logging::LoggerPtr components::Logging::GetLoggerOptional ( const std::string & name)

Returns a logger by its name.

Parameters
nameName of the logger
Returns
Pointer to the Logger instance, or nullptr if not registered

The documentation for this class was generated from the following file: