diff --git a/lib/elog.cpp b/lib/elog.cpp
index 890fd5d..11daee7 100644
--- a/lib/elog.cpp
+++ b/lib/elog.cpp
@@ -1,6 +1,7 @@
 #include "config.h"
 
 #include <phosphor-logging/elog.hpp>
+
 #include <stdexcept>
 
 namespace phosphor
diff --git a/lib/include/phosphor-logging/elog.hpp b/lib/include/phosphor-logging/elog.hpp
index cf2e507..b3227e5 100644
--- a/lib/include/phosphor-logging/elog.hpp
+++ b/lib/include/phosphor-logging/elog.hpp
@@ -3,6 +3,7 @@
 
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/exception.hpp>
+
 #include <tuple>
 #include <utility>
 
@@ -37,7 +38,6 @@
 template <typename T>
 struct deduce_entry_type
 {
-
     using type = T;
     auto get()
     {
diff --git a/lib/include/phosphor-logging/lg2.hpp b/lib/include/phosphor-logging/lg2.hpp
index 9486916..658c591 100644
--- a/lib/include/phosphor-logging/lg2.hpp
+++ b/lib/include/phosphor-logging/lg2.hpp
@@ -41,8 +41,7 @@
         const char* msg, details::header_str_conversion_t<Ts&&>... ts,
         const lg2::source_location& s = lg2::source_location::current()) :
         log(s, msg, std::forward<details::header_str_conversion_t<Ts&&>>(ts)...)
-    {
-    }
+    {}
 
     // Give a nicer compile error if someone tries to log without a message.
     log() = delete;
diff --git a/lib/include/phosphor-logging/lg2/concepts.hpp b/lib/include/phosphor-logging/lg2/concepts.hpp
index b70ac98..158df67 100644
--- a/lib/include/phosphor-logging/lg2/concepts.hpp
+++ b/lib/include/phosphor-logging/lg2/concepts.hpp
@@ -13,10 +13,11 @@
 /** Determine if a type might be a constexpr string: (const char (&)[N]) */
 template <typename T>
 concept maybe_constexpr_string = std::is_array_v<std::remove_cvref_t<T>> &&
-    std::same_as<const char*, std::decay_t<T>>;
+                                 std::same_as<const char*, std::decay_t<T>>;
 
 /** Determine if a type is certainly not a constexpr string. */
 template <typename T>
-concept not_constexpr_string = !maybe_constexpr_string<T>;
+concept not_constexpr_string = !
+maybe_constexpr_string<T>;
 
 }; // namespace lg2::details
diff --git a/lib/include/phosphor-logging/lg2/conversion.hpp b/lib/include/phosphor-logging/lg2/conversion.hpp
index 4517a11..87f5936 100644
--- a/lib/include/phosphor-logging/lg2/conversion.hpp
+++ b/lib/include/phosphor-logging/lg2/conversion.hpp
@@ -1,14 +1,15 @@
 #pragma once
 
-#include <concepts>
-#include <cstddef>
-#include <filesystem>
 #include <phosphor-logging/lg2/flags.hpp>
 #include <phosphor-logging/lg2/header.hpp>
 #include <phosphor-logging/lg2/level.hpp>
 #include <phosphor-logging/lg2/logger.hpp>
 #include <phosphor-logging/lg2/source_location.hpp>
 #include <sdbusplus/message/native_types.hpp>
+
+#include <concepts>
+#include <cstddef>
+#include <filesystem>
 #include <string_view>
 #include <tuple>
 #include <type_traits>
@@ -27,8 +28,9 @@
 template <typename T>
 concept string_like_type =
     (std::constructible_from<std::string_view, T> ||
-     std::same_as<std::filesystem::path,
-                  std::decay_t<T>>)&&!std::same_as<std::nullptr_t, T>;
+     std::same_as<std::filesystem::path, std::decay_t<T>>) &&
+    !
+std::same_as<std::nullptr_t, T>;
 
 /** Concept to determine if an item acts like a pointer.
  *
@@ -37,7 +39,9 @@
  */
 template <typename T>
 concept pointer_type = (std::is_pointer_v<T> ||
-                        std::same_as<std::nullptr_t, T>)&&!string_like_type<T>;
+                        std::same_as<std::nullptr_t, T>) &&
+                       !
+string_like_type<T>;
 
 /** Concept to determine if an item acts like an unsigned_integral.
  *
@@ -45,8 +49,8 @@
  *  `True` and `False` strings.
  */
 template <typename T>
-concept unsigned_integral_except_bool =
-    !std::same_as<T, bool> && std::unsigned_integral<T>;
+concept unsigned_integral_except_bool = !
+std::same_as<T, bool>&& std::unsigned_integral<T>;
 
 template <typename T>
 concept sdbusplus_enum = sdbusplus::message::has_convert_from_string_v<T>;
@@ -224,8 +228,8 @@
 
     // Cast (void*) to a hex-formatted uint64 using the target's pointer-size
     // to determine field-width.
-    constexpr static auto new_f =
-        sizeof(void*) == 4 ? field32.value : field64.value;
+    constexpr static auto new_f = sizeof(void*) == 4 ? field32.value
+                                                     : field64.value;
 
     return std::make_tuple(h, new_f | (hex | unsigned_val).value,
                            reinterpret_cast<uint64_t>(v));
diff --git a/lib/include/phosphor-logging/lg2/flags.hpp b/lib/include/phosphor-logging/lg2/flags.hpp
index 814e313..15bb071 100644
--- a/lib/include/phosphor-logging/lg2/flags.hpp
+++ b/lib/include/phosphor-logging/lg2/flags.hpp
@@ -23,10 +23,7 @@
 
 /** Concept to determine if a type is one of the defined flag types. */
 template <typename T>
-concept log_flags = requires
-{
-    T::i_am_a_lg2_flag_type;
-};
+concept log_flags = requires { T::i_am_a_lg2_flag_type; };
 
 /** Operator to combine log_flag sets together. */
 template <log_flags... As, log_flags... Bs>
diff --git a/lib/include/phosphor-logging/lg2/header.hpp b/lib/include/phosphor-logging/lg2/header.hpp
index dbe84ce..ebe6e84 100644
--- a/lib/include/phosphor-logging/lg2/header.hpp
+++ b/lib/include/phosphor-logging/lg2/header.hpp
@@ -1,8 +1,9 @@
 #pragma once
 
+#include <phosphor-logging/lg2/concepts.hpp>
+
 #include <algorithm>
 #include <array>
-#include <phosphor-logging/lg2/concepts.hpp>
 #include <string_view>
 
 namespace lg2::details
diff --git a/lib/include/phosphor-logging/lg2/logger.hpp b/lib/include/phosphor-logging/lg2/logger.hpp
index a392e70..7762a5f 100644
--- a/lib/include/phosphor-logging/lg2/logger.hpp
+++ b/lib/include/phosphor-logging/lg2/logger.hpp
@@ -1,9 +1,10 @@
 #pragma once
 
-#include <cstddef>
 #include <phosphor-logging/lg2/level.hpp>
 #include <phosphor-logging/lg2/source_location.hpp>
 
+#include <cstddef>
+
 namespace lg2::details
 {
 
diff --git a/lib/include/phosphor-logging/log.hpp b/lib/include/phosphor-logging/log.hpp
index 4c826ac..b99c4d3 100644
--- a/lib/include/phosphor-logging/log.hpp
+++ b/lib/include/phosphor-logging/log.hpp
@@ -20,6 +20,7 @@
 
 #include <phosphor-logging/sdjournal.hpp>
 #include <sdbusplus/server/transaction.hpp>
+
 #include <tuple>
 #include <type_traits>
 
@@ -92,27 +93,25 @@
 } // namespace details
 
 template <class T>
-struct is_char_ptr_argtype
-    : std::integral_constant<
-          bool,
-          (std::is_pointer<typename std::decay<T>::type>::value &&
-           std::is_same<typename std::remove_cv<typename std::remove_pointer<
-                            typename std::decay<T>::type>::type>::type,
-                        char>::value)>
-{
-};
+struct is_char_ptr_argtype :
+    std::integral_constant<
+        bool,
+        (std::is_pointer<typename std::decay<T>::type>::value &&
+         std::is_same<typename std::remove_cv<typename std::remove_pointer<
+                          typename std::decay<T>::type>::type>::type,
+                      char>::value)>
+{};
 
 template <class T>
-struct is_printf_argtype
-    : std::integral_constant<
-          bool,
-          (std::is_integral<typename std::remove_reference<T>::type>::value ||
-           std::is_enum<typename std::remove_reference<T>::type>::value ||
-           std::is_floating_point<
-               typename std::remove_reference<T>::type>::value ||
-           std::is_pointer<typename std::decay<T>::type>::value)>
-{
-};
+struct is_printf_argtype :
+    std::integral_constant<
+        bool,
+        (std::is_integral<typename std::remove_reference<T>::type>::value ||
+         std::is_enum<typename std::remove_reference<T>::type>::value ||
+         std::is_floating_point<
+             typename std::remove_reference<T>::type>::value ||
+         std::is_pointer<typename std::decay<T>::type>::value)>
+{};
 
 template <bool...>
 struct bool_pack;
diff --git a/lib/include/phosphor-logging/test/sdjournal_mock.hpp b/lib/include/phosphor-logging/test/sdjournal_mock.hpp
index b907bcc..0edbd6f 100644
--- a/lib/include/phosphor-logging/test/sdjournal_mock.hpp
+++ b/lib/include/phosphor-logging/test/sdjournal_mock.hpp
@@ -1,8 +1,9 @@
 #pragma once
 
-#include <cstdarg>
 #include <phosphor-logging/sdjournal.hpp>
 
+#include <cstdarg>
+
 #include <gmock/gmock.h>
 
 namespace phosphor
diff --git a/lib/lg2_logger.cpp b/lib/lg2_logger.cpp
index 3c61003..a83dcb2 100644
--- a/lib/lg2_logger.cpp
+++ b/lib/lg2_logger.cpp
@@ -3,12 +3,13 @@
 #include <systemd/sd-journal.h>
 #include <unistd.h>
 
+#include <phosphor-logging/lg2.hpp>
+
 #include <algorithm>
 #include <bitset>
 #include <cstdarg>
 #include <cstdio>
 #include <iostream>
-#include <phosphor-logging/lg2.hpp>
 #include <vector>
 
 // Clang doesn't currently support source_location, but in order to provide
@@ -138,8 +139,7 @@
 /** No-op output of a message. */
 static void noop_extra_output(level, const lg2::source_location&,
                               const std::string&)
-{
-}
+{}
 
 /** std::cerr output of a message. */
 static void cerr_extra_output(level l, const lg2::source_location& s,
@@ -209,10 +209,10 @@
 
 // Use the cerr output method if we are on a TTY or if explicitly set via
 // environment variable.
-static auto extra_output_method =
-    (isatty(fileno(stderr)) || nullptr != getenv("LG2_FORCE_STDERR"))
-        ? cerr_extra_output
-        : noop_extra_output;
+static auto extra_output_method = (isatty(fileno(stderr)) ||
+                                   nullptr != getenv("LG2_FORCE_STDERR"))
+                                      ? cerr_extra_output
+                                      : noop_extra_output;
 
 // Do_log implementation.
 void do_log(level l, const lg2::source_location& s, const char* m, ...)
@@ -311,8 +311,7 @@
 // people like to compile with Clang for additional / stricter checks.
 #if __has_builtin(__builtin_source_location)
 void do_log(level, const std::experimental::source_location&, const char*, ...)
-{
-}
+{}
 #endif
 
 } // namespace lg2::details
diff --git a/lib/sdjournal.cpp b/lib/sdjournal.cpp
index 76c28e9..05b6a1a 100644
--- a/lib/sdjournal.cpp
+++ b/lib/sdjournal.cpp
@@ -1,8 +1,9 @@
 #include <systemd/sd-journal.h>
 
-#include <cstdarg>
 #include <phosphor-logging/sdjournal.hpp>
 
+#include <cstdarg>
+
 namespace phosphor
 {
 namespace logging
