Coverage Report

Created: 2025-07-12 06:12

/src/logging-log4cxx/src/main/include/log4cxx/spi/rootlogger.h
Line
Count
Source
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
18
#ifndef _LOG4CXX_SPI_ROOT_LOGGER_H
19
#define _LOG4CXX_SPI_ROOT_LOGGER_H
20
21
#include <log4cxx/logger.h>
22
23
namespace LOG4CXX_NS
24
{
25
namespace spi
26
{
27
/**
28
RootLogger sits at the top of the logger hierachy. It is a
29
regular logger except that it provides several guarantees.
30
31
<p>First, it cannot be assigned a null
32
level. Second, since root logger cannot have a parent, the
33
#getEffectiveLevel method always returns the value of the
34
level field without walking the hierarchy.
35
*/
36
class LOG4CXX_EXPORT RootLogger : public Logger
37
{
38
  public:
39
    /**
40
    The root logger names itself as "root". However, the root
41
    logger cannot be retrieved by name.
42
    */
43
    RootLogger(const LevelPtr& level);
44
45
#if LOG4CXX_ABI_VERSION <= 15
46
    [[ deprecated( "Pool is no longer required" ) ]]
47
    RootLogger(helpers::Pool& pool, const LevelPtr level);
48
#endif
49
50
3
    ~RootLogger() {}
51
52
    /**
53
    Return the assigned level value without walking the logger
54
    hierarchy.
55
    */
56
    virtual const LevelPtr& getEffectiveLevel() const;
57
58
    /**
59
                Setting a null value to the level of the root logger may have catastrophic
60
                results. We prevent this here.
61
                */
62
    void setLevel(const LevelPtr level);
63
};
64
}  // namespace spi
65
} // namespace log4cxx
66
67
#endif //_LOG4CXX_SPI_ROOT_LOGGER_H