/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <folly/logging/CustomLogFormatter.h> #include <algorithm> #include <folly/Format.h> #include <folly/logging/LogLevel.h> #include <folly/logging/LogMessage.h> #include <folly/portability/Time.h> namespace { LogLevel; StringPiece; StringPiece getGlogLevelName(LogLevel level) { … } StringPiece getResetSequence(LogLevel level) { … } StringPiece getColorSequence(LogLevel level) { … } /** * Get base file name without extension. */ StringPiece getBaseNameNoExt(StringPiece baseName) { … } struct FormatKeys { … }; /** * The first part of pairs in this array are the key names and the second part * of the pairs are the argument index for folly::format(). * * NOTE: This array must be sorted by key name, since we use std::lower_bound * to search in it. * * TODO: Support including thread names and thread context info. */ constexpr std::array<FormatKeys, 13> formatKeys{ … }; constexpr size_t messageIndex = …; } // namespace namespace folly { CustomLogFormatter::CustomLogFormatter(StringPiece format, bool colored) : … { … } void CustomLogFormatter::parseFormatString(StringPiece input) { … } std::string CustomLogFormatter::formatMessage( const LogMessage& message, const LogCategory* /* handlerCategory */) { … } } // namespace folly