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 after service is shut 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 75 of file component.hpp.

+ Inheritance 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.
 
void SetLogger (const std::string &name, logging::LoggerPtr logger)
 Sets a logger.
 
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
 
virtual ComponentHealth GetComponentHealth () const
 
virtual void OnLoadingCancelled ()
 
virtual void OnAllComponentsLoaded ()
 
virtual void OnAllComponentsAreStopping ()
 

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

◆ GetComponentHealth()

virtual ComponentHealth components::RawComponentBase::GetComponentHealth ( ) const
inlinevirtualinherited

Reimplemented in components::ComponentBase, and server::handlers::Restart.

Definition at line 49 of file raw_component_base.hpp.

◆ 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

◆ OnAllComponentsAreStopping()

virtual void components::RawComponentBase::OnAllComponentsAreStopping ( )
inlinevirtualinherited

◆ OnAllComponentsLoaded()

virtual void components::RawComponentBase::OnAllComponentsLoaded ( )
inlinevirtualinherited

◆ OnLoadingCancelled()

virtual void components::RawComponentBase::OnLoadingCancelled ( )
inlinevirtualinherited

Reimplemented in components::ComponentBase.

Definition at line 51 of file raw_component_base.hpp.

◆ SetLogger()

void components::Logging::SetLogger ( const std::string & name,
logging::LoggerPtr logger )

Sets a logger.

Parameters
nameName of the logger
loggerLogger to set

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