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

libzypp 17.25.10

Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Related Functions | List of all members
zypp::base::logger::LogControlImpl Struct Reference

LogControl implementation (Singleton). More...

## Public Member Functions
bool | isExcessive ()
void | excessive (bool onOff_r)
void | setLineWriter (const shared_ptr< LogControl::LineWriter > &writer_r)
| NULL _lineWriter indicates no loggin. More...
shared_ptr< LogControl::LineWriter > | getLineWriter () const
void | setLineFormater (const shared_ptr< LogControl::LineFormater > &format_r)
| Assert _lineFormater is not NULL. More...
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) More...
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. More...

## Static Public Member Functions
static LogControlImpl & | instance ()
| The LogControlImpl singleton. More...

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

## Private Member Functions
| LogControlImpl ()
| Singleton ctor. More...
| ~LogControlImpl ()

## Private Attributes
std::ostream | _no_stream
bool | _excessive
shared_ptr< LogControl::LineFormater > | _lineFormater
shared_ptr< LogControl::LineWriter > | _lineWriter
StreamTable | _streamtable
| one streambuffer per group and level More...

## Related Functions
(Note that these are not member functions.)
std::ostream & | operator<< (std::ostream &str, const LogControlImpl &obj)
| Stream output. More...

## Detailed Description

LogControl implementation (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 284 of file LogControl.cc.

## Member Typedef Documentation

## ◆ StreamPtr

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

Definition at line 367 of file LogControl.cc.

## ◆ StreamSet

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

Definition at line 368 of file LogControl.cc.

## ◆ StreamTable

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

Definition at line 369 of file LogControl.cc.

## Constructor & Destructor Documentation

## ◆ LogControlImpl()

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

Singleton ctor.

No logging per default, unless enabled via $ZYPP_LOGFILE.

Definition at line 377 of file LogControl.cc.

## ◆ ~LogControlImpl()

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

Definition at line 392 of file LogControl.cc.

## Member Function Documentation

## ◆ isExcessive()

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

Definition at line 287 of file LogControl.cc.

## ◆ excessive()

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

Definition at line 290 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 294 of file LogControl.cc.

## ◆ getLineWriter()

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

Definition at line 297 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 301 of file LogControl.cc.

## ◆ logfile()

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

Definition at line 309 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 328 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 353 of file LogControl.cc.

## ◆ 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 409 of file LogControl.cc.

## Friends And Related Function Documentation

## ◆ operator<<()

std::ostream & operator<< | ( | std::ostream & | str,
|  | const LogControlImpl & | obj
| ) |  |
| related

Stream output.

Definition at line 418 of file LogControl.cc.

## Member Data Documentation

## ◆ _no_stream

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

Definition at line 320 of file LogControl.cc.

## ◆ _excessive

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

Definition at line 321 of file LogControl.cc.

## ◆ _lineFormater

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

Definition at line 323 of file LogControl.cc.

## ◆ _lineWriter

shared_ptr<LogControl::LineWriter> zypp::base::logger::LogControlImpl::_lineWriter
| private

Definition at line 324 of file LogControl.cc.

## ◆ _streamtable

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

one streambuffer per group and level

Definition at line 371 of file LogControl.cc.

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

- zypp/base/LogControl.cc