log4cplus 2.0.8
loggerimpl.h
Go to the documentation of this file.
1// -*- C++ -*-
2// Module: Log4CPLUS
3// File: loggerimpl.h
4// Created: 6/2001
5// Author: Tad E. Smith
6//
7//
8// Copyright 2001-2017 Tad E. Smith
9//
10// Licensed under the Apache License, Version 2.0 (the "License");
11// you may not use this file except in compliance with the License.
12// You may obtain a copy of the License at
13//
14// http://www.apache.org/licenses/LICENSE-2.0
15//
16// Unless required by applicable law or agreed to in writing, software
17// distributed under the License is distributed on an "AS IS" BASIS,
18// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19// See the License for the specific language governing permissions and
20// limitations under the License.
21
24#ifndef LOG4CPLUS_SPI_LOGGER_HEADER_
25#define LOG4CPLUS_SPI_LOGGER_HEADER_
26
27#include <log4cplus/config.hxx>
28
29#if defined (LOG4CPLUS_HAVE_PRAGMA_ONCE)
30#pragma once
31#endif
32
33#include <log4cplus/tstring.h>
37#include <memory>
38#include <vector>
39
40
41namespace log4cplus {
42 class DefaultLoggerFactory;
43
44 namespace spi {
45
52 : public virtual log4cplus::helpers::SharedObject,
54 {
55 public:
57
58 // Methods
59
71 virtual void callAppenders(const InternalLoggingEvent& event);
72
77 virtual void closeNestedAppenders();
78
85 virtual bool isEnabledFor(LogLevel ll) const;
86
90 virtual void log(LogLevel ll, const log4cplus::tstring& message,
91 const char* file=nullptr, int line=-1,
92 const char* function=nullptr);
93
94 virtual void log(spi::InternalLoggingEvent const &);
95
105
111 LogLevel getLogLevel() const { return this->ll; }
112
116 void setLogLevel(LogLevel _ll) { this->ll = _ll; }
117
122 virtual Hierarchy& getHierarchy() const;
123
127 log4cplus::tstring const & getName() const { return name; }
128
132 bool getAdditivity() const;
133
137 void setAdditivity(bool additive);
138
139 virtual ~LoggerImpl();
140
141 protected:
142 // Ctors
154
155
156 // Methods
161 virtual void forcedLog(LogLevel ll,
162 const log4cplus::tstring& message,
163 const char* file,
164 int line,
165 const char* function);
166
167 virtual void forcedLog(spi::InternalLoggingEvent const & ev);
168
169
170 // Data
173
178
184
195
196 private:
197 // Data
199 Hierarchy& hierarchy;
200
201 // Disallow copying of instances of this class
202 LoggerImpl(const LoggerImpl&) = delete;
203 LoggerImpl& operator=(const LoggerImpl&) = delete;
204
205 // Friends
206 friend class log4cplus::Logger;
209 };
210
212
213 } // end namespace spi
214} // end namespace log4cplus
215
216#endif // LOG4CPLUS_SPI_LOGGER_HEADER_
This class is used to create the default implementation of the Logger class.
Definition logger.h:312
This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.
Definition hierarchy.h:64
This is the central class in the log4cplus package.
Definition logger.h:71
This Interface is for attaching Appenders to objects.
The internal representation of logging events.
This is the central class in the log4cplus package.
Definition loggerimpl.h:54
virtual void closeNestedAppenders()
Close all attached appenders implementing the AppenderAttachable interface.
LogLevel getLogLevel() const
Returns the assigned LogLevel, if any, for this Logger.
Definition loggerimpl.h:111
virtual LogLevel getChainedLogLevel() const
Starting from this logger, search the logger hierarchy for a "set" LogLevel and return it.
void setAdditivity(bool additive)
Set the additivity flag for this Logger instance.
bool getAdditivity() const
Get the additivity flag for this Logger instance.
helpers::SharedObjectPtr< LoggerImpl > SharedLoggerImplPtr
Definition loggerimpl.h:56
LoggerImpl(const log4cplus::tstring &name, Hierarchy &h)
This constructor created a new Logger instance and sets its name.
virtual Hierarchy & getHierarchy() const
Return the the Hierarchy where this Logger instance is attached.
virtual void forcedLog(spi::InternalLoggingEvent const &ev)
LogLevel ll
The assigned LogLevel of this logger.
Definition loggerimpl.h:177
SharedLoggerImplPtr parent
The parent of this logger.
Definition loggerimpl.h:183
virtual bool isEnabledFor(LogLevel ll) const
Check whether this logger is enabled for a given LogLevel passed as parameter.
virtual void callAppenders(const InternalLoggingEvent &event)
Call the appenders in the hierrachy starting at this.
log4cplus::tstring const & getName() const
Return the logger name.
Definition loggerimpl.h:127
virtual void log(LogLevel ll, const log4cplus::tstring &message, const char *file=nullptr, int line=-1, const char *function=nullptr)
This generic form is intended to be used by wrappers.
bool additive
Additivity is set to true by default, that is children inherit the appenders of their ancestors by de...
Definition loggerimpl.h:194
virtual void log(spi::InternalLoggingEvent const &)
void setLogLevel(LogLevel _ll)
Set the LogLevel of this Logger.
Definition loggerimpl.h:116
log4cplus::tstring name
The name of this logger.
Definition loggerimpl.h:172
virtual void forcedLog(LogLevel ll, const log4cplus::tstring &message, const char *file, int line, const char *function)
This method creates a new logging event and logs the event without further checks.
LoggerImpl::SharedLoggerImplPtr SharedLoggerImplPtr
Definition loggerimpl.h:211
std::basic_string< tchar > tstring
Definition tstring.h:39
int LogLevel
Defines the minimum set of priorities recognized by the system, that is FATAL_LOG_LEVEL,...
Definition loglevel.h:48
#define LOG4CPLUS_EXPORT
Definition win32.h:141