Move cold inline LogMessage streaming helpers out of the header to reduce code size.

Moving streaming operator overloads and StringifySink::Append from the header to the implementation file avoids duplicating them across logging call sites while keeping log statement setup compact.

PiperOrigin-RevId: 1005561067
diff --git a/absl/log/internal/log_message.cc b/absl/log/internal/log_message.cc
index e56ef25..b1545aa 100644
--- a/absl/log/internal/log_message.cc
+++ b/absl/log/internal/log_message.cc
@@ -787,5 +787,43 @@
 
 }  // namespace log_internal
 
+namespace log_internal {
+LogMessage& LogMessage::operator<<(signed char v) {
+  return operator<< <signed char>(v);
+}
+}  // namespace log_internal
+
+namespace log_internal {
+LogMessage& LogMessage::operator<<(signed long long v) {
+  return operator<< <signed long long>(v);
+}
+}  // namespace log_internal
+
+namespace log_internal {
+LogMessage& LogMessage::operator<<(unsigned short v) {
+  return operator<< <unsigned short>(v);
+}
+}  // namespace log_internal
+
+namespace log_internal {
+LogMessage& LogMessage::operator<<(unsigned long long v) {
+  return operator<< <unsigned long long>(v);
+}
+}  // namespace log_internal
+
+namespace log_internal {
+LogMessage& LogMessage::operator<<(const absl::SourceLocation& loc) {
+  OstreamView view(*data_);
+  view.stream() << loc.file_name() << ':' << loc.line();
+  return *this;
+}
+}  // namespace log_internal
+
+namespace log_internal {
+void StringifySink::Append(absl::string_view v) {
+  message_.CopyToEncodedBuffer<LogMessage::StringType::kNotLiteral>(v);
+}
+}  // namespace log_internal
+
 ABSL_NAMESPACE_END
 }  // namespace absl
diff --git a/absl/log/internal/log_message.h b/absl/log/internal/log_message.h
index cd12833..e4fba66 100644
--- a/absl/log/internal/log_message.h
+++ b/absl/log/internal/log_message.h
@@ -129,7 +129,7 @@
   // NOLINTBEGIN(google-runtime-int)
   // clang-format off:  The CUDA toolchain cannot handle these <<<'s
   LogMessage& operator<<(char v) { return operator<< <char>(v); }
-  LogMessage& operator<<(signed char v) { return operator<< <signed char>(v); }
+  LogMessage& operator<<(signed char v);
   LogMessage& operator<<(unsigned char v) {
     return operator<< <unsigned char>(v);
   }
@@ -140,21 +140,15 @@
   LogMessage& operator<<(signed long v) {
     return operator<< <signed long>(v);
   }
-  LogMessage& operator<<(signed long long v) {
-    return operator<< <signed long long>(v);
-  }
-  LogMessage& operator<<(unsigned short v) {
-    return operator<< <unsigned short>(v);
-  }
+  LogMessage& operator<<(signed long long v);
+  LogMessage& operator<<(unsigned short v);
   LogMessage& operator<<(unsigned int v) {
     return operator<< <unsigned int>(v);
   }
   LogMessage& operator<<(unsigned long v) {
     return operator<< <unsigned long>(v);
   }
-  LogMessage& operator<<(unsigned long long v) {
-    return operator<< <unsigned long long>(v);
-  }
+  LogMessage& operator<<(unsigned long long v);
   LogMessage& operator<<(void* absl_nullable  v) {
     return operator<< <void*>(v);
   }
@@ -180,11 +174,7 @@
   LogMessage& operator<<(wchar_t v);
 
   // Overload for absl::SourceLocation or the std::source_location alias.
-  LogMessage& operator<<(const absl::SourceLocation& loc) {
-    OstreamView view(*data_);
-    view.stream() << loc.file_name() << ':' << loc.line();
-    return *this;
-  }
+  LogMessage& operator<<(const absl::SourceLocation& loc);
 
   // Handle stream manipulators e.g. std::endl.
   LogMessage& operator<<(std::ostream& (*absl_nonnull m)(std::ostream& os));
@@ -331,9 +321,7 @@
                                                                       count);
   }
 
-  void Append(absl::string_view v) {
-    message_.CopyToEncodedBuffer<LogMessage::StringType::kNotLiteral>(v);
-  }
+  void Append(absl::string_view v);
 
   // For types that implement `AbslStringify` using `absl::Format()`.
   friend void AbslFormatFlush(StringifySink* absl_nonnull sink,