libzypp: zypp::base::logger::LogControlImpl Struct Reference

libzypp 17.38.7

zypp::base::logger::LogControlImpl Struct Reference

LogControl implementation (thread_local Singleton). More...

## Public Member Functions
bool | isExcessive () const
void | excessive (bool onOff_r)
bool | hideThreadName () const
| Hint for Formater whether to hide the thread name.
void | hideThreadName (bool onOff_r)
void | setLineWriter (const shared_ptr< LogControl::LineWriter > &writer_r)
| NULL _lineWriter indicates no loggin.
shared_ptr< LogControl::LineWriter > | getLineWriter () const
void | setLineFormater (const shared_ptr< LogControl::LineFormater > &format_r)
| Assert _lineFormater is not NULL.
void | logfile (const Pathname &logfile_r, mode_t mode_r=0640)
std::ostream & | getStream (const std::string &group_r, LogLevel level_r, const char *file_r, const char *func_r, const int line_r)
| Provide the log stream to write (logger interface).
void | putRawLine (std::string &&line)
void | putStream (const std::string &group_r, LogLevel level_r, const char *file_r, const char *func_r, int line_r, const std::string &message_r)
| Format and write out a logline from Loglinebuf.
| LogControlImpl (const LogControlImpl &)=delete
| LogControlImpl (LogControlImpl &&)=delete
LogControlImpl & | operator= (const LogControlImpl &)=delete
LogControlImpl & | operator= (LogControlImpl &&)=delete
| ~LogControlImpl ()

## Static Public Member Functions
static bool | instanceHideThreadName ()
static void | instanceHideThreadName (bool onOff_r)
static bool | instanceLogToPPID ()
| Hint for formatter wether we forward all logs to a parents log.
static void | instanceSetLogToPPID (bool onOff_r)
static LogControlImpl * | instance ()
| The LogControlImpl singleton.

## Private Types
using | StreamPtr = shared_ptr<Loglinestream>
using | StreamSet = std::map<LogLevel, StreamPtr>
using | StreamTable = std::map<std::string, StreamSet>

## Private Member Functions
void | readEnvVars ()
| LogControlImpl ()
| Singleton ctor.

## Private Attributes
LogClient | _logClient
std::ostream | _no_stream
bool | _excessive
bool | _logToPPIDMode = false
| Hint for formatter to use the PPID and always show the thread name.
TriBool | _hideThreadName = indeterminate
| Hint for Formater whether to hide the thread name.
shared_ptr< LogControl::LineFormater > | _lineFormater
StreamTable | _streamtable
| one streambuffer per group and level
zyppng::Socket::Ptr | _sock

## Detailed Description

LogControl implementation (thread_local Singleton).

Note
  There is a slight difference in using the _lineFormater and _lineWriter!
  - `_lineFormater` must not be NULL (create default LogControl::LineFormater)
  - `_lineWriter` is NULL if no logging is performed, this way we can pass _no_stream as logstream to the application, and avoid unnecessary formating of logliles, which would then be discarded when passed to some dummy LineWriter.

Definition at line 569 of file LogControl.cc.

## Member Typedef Documentation

## ◆ StreamPtr

using zypp::base::logger::LogControlImpl::StreamPtr = shared_ptr<Loglinestream>
| private

Definition at line 696 of file LogControl.cc.

## ◆ StreamSet

using zypp::base::logger::LogControlImpl::StreamSet = std::map<LogLevel, StreamPtr>
| private

Definition at line 697 of file LogControl.cc.

## ◆ StreamTable

using zypp::base::logger::LogControlImpl::StreamTable = std::map<std::string, StreamSet>
| private

Definition at line 698 of file LogControl.cc.

## Constructor & Destructor Documentation

## ◆ LogControlImpl() [1/3]

zypp::base::logger::LogControlImpl::LogControlImpl | ( |  | ) |
| inlineprivate

Singleton ctor.

No logging per default, unless enabled via $ZYPP_LOGFILE.

Definition at line 718 of file LogControl.cc.

## ◆ LogControlImpl() [2/3]

zypp::base::logger::LogControlImpl::LogControlImpl | ( | const LogControlImpl & |  | ) |
| delete

## ◆ LogControlImpl() [3/3]

zypp::base::logger::LogControlImpl::LogControlImpl | ( | LogControlImpl && |  | ) |
| delete

## ◆ ~LogControlImpl()

zypp::base::logger::LogControlImpl::~LogControlImpl | ( |  | ) |
| inline

Definition at line 737 of file LogControl.cc.

## Member Function Documentation

## ◆ isExcessive()

bool zypp::base::logger::LogControlImpl::isExcessive | ( |  | ) | const
| inline

Definition at line 572 of file LogControl.cc.

## ◆ excessive()

void zypp::base::logger::LogControlImpl::excessive | ( | bool | onOff_r | ) |
| inline

Definition at line 574 of file LogControl.cc.

## ◆ hideThreadName() [1/2]

bool zypp::base::logger::LogControlImpl::hideThreadName | ( |  | ) | const
| inline

Hint for Formater whether to hide the thread name.

Definition at line 579 of file LogControl.cc.

## ◆ hideThreadName() [2/2]

void zypp::base::logger::LogControlImpl::hideThreadName | ( | bool | onOff_r | ) |
| inline

Definition at line 586 of file LogControl.cc.

## ◆ instanceHideThreadName() [1/2]

bool zypp::base::logger::LogControlImpl::instanceHideThreadName | ( |  | ) |
| inlinestatic

Definition at line 590 of file LogControl.cc.

## ◆ instanceHideThreadName() [2/2]

void zypp::base::logger::LogControlImpl::instanceHideThreadName | ( | bool | onOff_r | ) |
| inlinestatic

Definition at line 596 of file LogControl.cc.

## ◆ instanceLogToPPID()

bool zypp::base::logger::LogControlImpl::instanceLogToPPID | ( |  | ) |
| inlinestatic

Hint for formatter wether we forward all logs to a parents log.

Definition at line 603 of file LogControl.cc.

## ◆ instanceSetLogToPPID()

void zypp::base::logger::LogControlImpl::instanceSetLogToPPID | ( | bool | onOff_r | ) |
| inlinestatic

Definition at line 610 of file LogControl.cc.

## ◆ setLineWriter()

void zypp::base::logger::LogControlImpl::setLineWriter | ( | const shared_ptr< LogControl::LineWriter > & | writer_r | ) |
| inline

NULL _lineWriter indicates no loggin.

Definition at line 618 of file LogControl.cc.

## ◆ getLineWriter()

shared_ptr< LogControl::LineWriter > zypp::base::logger::LogControlImpl::getLineWriter | ( |  | ) | const
| inline

Definition at line 621 of file LogControl.cc.

## ◆ setLineFormater()

void zypp::base::logger::LogControlImpl::setLineFormater | ( | const shared_ptr< LogControl::LineFormater > & | format_r | ) |
| inline

Assert _lineFormater is not NULL.

Definition at line 625 of file LogControl.cc.

## ◆ logfile()

void zypp::base::logger::LogControlImpl::logfile | ( | const Pathname & | logfile_r,
|  | mode_t | mode_r = 0640 )
| inline

Definition at line 633 of file LogControl.cc.

## ◆ getStream()

std::ostream & zypp::base::logger::LogControlImpl::getStream | ( | const std::string & | group_r,
|  | LogLevel | level_r,
|  | const char * | file_r,
|  | const char * | func_r,
|  | const int | line_r )
| inline

Provide the log stream to write (logger interface).

Definition at line 654 of file LogControl.cc.

## ◆ putRawLine()

void zypp::base::logger::LogControlImpl::putRawLine | ( | std::string && | line | ) |
| inline

Definition at line 678 of file LogControl.cc.

## ◆ putStream()

void zypp::base::logger::LogControlImpl::putStream | ( | const std::string & | group_r,
|  | LogLevel | level_r,
|  | const char * | file_r,
|  | const char * | func_r,
|  | int | line_r,
|  | const std::string & | message_r )
| inline

Format and write out a logline from Loglinebuf.

Definition at line 683 of file LogControl.cc.

## ◆ readEnvVars()

void zypp::base::logger::LogControlImpl::readEnvVars | ( |  | ) |
| inlineprivate

Definition at line 705 of file LogControl.cc.

## ◆ operator=() [1/2]

LogControlImpl & zypp::base::logger::LogControlImpl::operator= | ( | const LogControlImpl & |  | ) |
| delete

## ◆ operator=() [2/2]

LogControlImpl & zypp::base::logger::LogControlImpl::operator= | ( | LogControlImpl && |  | ) |
| delete

## ◆ instance()

LogControlImpl * zypp::base::logger::LogControlImpl::instance | ( |  | ) |
| inlinestatic

The LogControlImpl singleton.

Note
  As most dtors log, it is inportant that the LogControlImpl instance is the last static variable destructed. At least destucted after all statics which log from their dtor.

Definition at line 753 of file LogControl.cc.

## Member Data Documentation

## ◆ _logClient

LogClient zypp::base::logger::LogControlImpl::_logClient
| private

Definition at line 644 of file LogControl.cc.

## ◆ _no_stream

std::ostream zypp::base::logger::LogControlImpl::_no_stream
| private

Definition at line 645 of file LogControl.cc.

## ◆ _excessive

bool zypp::base::logger::LogControlImpl::_excessive
| private

Definition at line 646 of file LogControl.cc.

## ◆ _logToPPIDMode

bool zypp::base::logger::LogControlImpl::_logToPPIDMode = false
| private

Hint for formatter to use the PPID and always show the thread name.

Definition at line 647 of file LogControl.cc.

## ◆ _hideThreadName

TriBool zypp::base::logger::LogControlImpl::_hideThreadName = indeterminate
| mutableprivate

Hint for Formater whether to hide the thread name.

Definition at line 648 of file LogControl.cc.

## ◆ _lineFormater

shared_ptr<LogControl::LineFormater> zypp::base::logger::LogControlImpl::_lineFormater
| private

Definition at line 650 of file LogControl.cc.

## ◆ _streamtable

StreamTable zypp::base::logger::LogControlImpl::_streamtable
| private

one streambuffer per group and level

Definition at line 700 of file LogControl.cc.

## ◆ _sock

zyppng::Socket::Ptr zypp::base::logger::LogControlImpl::_sock
| private

Definition at line 701 of file LogControl.cc.

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

- zypp-core/base/LogControl.cc