add a new logging library
[folly.git] / folly / experimental / logging / test / LoggerDBTest.cpp
1 /*
2  * Copyright 2004-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #include <folly/experimental/logging/Logger.h>
17 #include <folly/experimental/logging/LoggerDB.h>
18 #include <folly/portability/GTest.h>
19
20 using namespace folly;
21
22 TEST(LoggerDB, lookupNameCanonicalization) {
23   LoggerDB db{LoggerDB::TESTING};
24   Logger foo{&db, "foo"};
25   Logger foo2{&db, "..foo.."};
26   EXPECT_EQ(foo.getCategory(), foo2.getCategory());
27
28   Logger fooBar{&db, "foo.bar"};
29   Logger fooBar2{&db, ".foo..bar"};
30   EXPECT_EQ(fooBar.getCategory(), fooBar2.getCategory());
31 }
32
33 TEST(LoggerDB, getCategory) {
34   LoggerDB db{LoggerDB::TESTING};
35 }
36
37 TEST(LoggerDB, processConfigString) {
38   LoggerDB db{LoggerDB::TESTING};
39   db.processConfigString("foo.bar=dbg5");
40   EXPECT_EQ(LogLevel::DBG5, db.getCategory("foo.bar")->getLevel());
41   EXPECT_EQ(LogLevel::DBG5, db.getCategory("foo.bar")->getEffectiveLevel());
42   EXPECT_EQ(LogLevel::MAX_LEVEL, db.getCategory("foo")->getLevel());
43   EXPECT_EQ(LogLevel::ERROR, db.getCategory("foo")->getEffectiveLevel());
44   EXPECT_EQ(LogLevel::ERROR, db.getCategory("")->getLevel());
45   EXPECT_EQ(LogLevel::ERROR, db.getCategory("")->getEffectiveLevel());
46
47   EXPECT_EQ(LogLevel::MAX_LEVEL, db.getCategory("foo.bar.test")->getLevel());
48   EXPECT_EQ(
49       LogLevel::DBG5, db.getCategory("foo.bar.test")->getEffectiveLevel());
50
51   db.processConfigString("sys=warn,foo.test=debug,foo.test.stuff=warn");
52   EXPECT_EQ(LogLevel::WARN, db.getCategory("sys")->getLevel());
53   EXPECT_EQ(LogLevel::WARN, db.getCategory("sys")->getEffectiveLevel());
54   EXPECT_EQ(LogLevel::DEBUG, db.getCategory("foo.test")->getLevel());
55   EXPECT_EQ(LogLevel::DEBUG, db.getCategory("foo.test")->getEffectiveLevel());
56   EXPECT_EQ(LogLevel::WARN, db.getCategory("foo.test.stuff")->getLevel());
57   EXPECT_EQ(
58       LogLevel::DEBUG, db.getCategory("foo.test.stuff")->getEffectiveLevel());
59 }