userver: userver/logging/logger.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
logger.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/logging/logger.hpp
4/// @brief Logger definitions and helpers
5
6#include <memory>
7#include <string>
8
9#include <userver/logging/format.hpp>
10#include <userver/logging/fwd.hpp>
11#include <userver/logging/level.hpp>
12
13USERVER_NAMESPACE_BEGIN
14
15namespace logging {
16
17namespace impl {
18
19class TagWriter;
20class LoggerBase;
21void LogRaw(TextLogger& logger, Level level, std::string_view message);
22
23} // namespace impl
24
25/// @brief Creates synchronous stderr logger with default tskv pattern
26/// @param name logger name, for internal use, must be unique
27/// @param format logs output format
28/// @param level minimum logs level to write to this logger, a.k.a. logger's log level
29/// @see components::Logging
30LoggerPtr MakeStderrLogger(const std::string& name, Format format, Level level = Level::kInfo);
31
32/// @brief Creates synchronous stdout logger with default tskv pattern
33/// @param name logger name, for internal use, must be unique
34/// @param format logs output format
35/// @param level minimum logs level to write to this logger, a.k.a. logger's log level
36/// @see components::Logging
37LoggerPtr MakeStdoutLogger(const std::string& name, Format format, Level level = Level::kInfo);
38
39/// @brief Creates synchronous file logger with default tskv pattern
40/// @param name logger name, for internal use, must be unique
41/// @param path target log file path
42/// @param format logs output format
43/// @param level minimum logs level to write to this logger, a.k.a. logger's log level
44/// @see components::Logging
45LoggerPtr MakeFileLogger(const std::string& name, const std::string& path, Format format, Level level = Level::kInfo);
46
47namespace impl::default_ {
48
49bool DoShouldLog(Level) noexcept;
50
51void PrependCommonTags(TagWriter writer, Level logger_level);
52
53} // namespace impl::default_
54
55} // namespace logging
56
57USERVER_NAMESPACE_END