Consistently have the namespace closing comment
[folly.git] / folly / experimental / logging / printf.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/printf.h>
17
18 #include <cstdarg>
19
20 #include <folly/Conv.h>
21 #include <folly/String.h>
22
23 namespace folly {
24
25 std::string loggingFormatPrintf(const char* format, ...) noexcept {
26   va_list ap;
27   va_start(ap, format);
28   SCOPE_EXIT {
29     va_end(ap);
30   };
31   try {
32     return stringVPrintf(format, ap);
33   } catch (const std::exception&) {
34     // We don't bother including the exception message here.
35     // The exceptions thrown by stringVPrintf() don't normally have much useful
36     // information regarding what precisely went wrong.
37     return folly::to<std::string>(
38         "error formatting printf-style log message: ", format);
39   }
40 }
41 } // namespace folly