48 lines
881 B
C++
48 lines
881 B
C++
#ifndef LOGGING_LOGGER_H_
|
|
|
|
#define LOGGING_LOGGER_H_
|
|
#include "ILogger.hh"
|
|
#include "ILogHandler.hh"
|
|
#include "LoggingBase.hh"
|
|
|
|
#include <memory_resource>
|
|
#include <ctime>
|
|
|
|
#include "../common/ResourceKeeper.hpp"
|
|
|
|
namespace logging {
|
|
|
|
|
|
class Logger : public ILogger {
|
|
public:
|
|
|
|
typedef uint16_t Id;
|
|
|
|
private:
|
|
Id idx;
|
|
ResourceKeeper<ILogHandler> * handler; // Хранитель журнала.
|
|
base::log_permit_flag log_permission;
|
|
uint32_t on_counter;
|
|
|
|
|
|
|
|
void fill_record( const char * message, std::size_t length,
|
|
LogRecord & record );
|
|
|
|
public:
|
|
Logger(Id, base::log_permit_flag, uint32_t on_counter );
|
|
|
|
void log_critical( const char *, std::size_t );
|
|
void log_error( const char *, std::size_t );
|
|
void log_information( const char *, std::size_t );
|
|
|
|
void add_handler( ResourceKeeper<ILogHandler> * );
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* LOGGING_LOGGER_H_ */
|