This is an automated email from the ASF dual-hosted git repository.

FreeAndNil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4net.git


The following commit(s) were added to refs/heads/master by this push:
     new 276c3afb document raw string usage
276c3afb is described below

commit 276c3afba226e0006583d73c44da588f04c82405
Author: Jan Friedrich <[email protected]>
AuthorDate: Mon Aug 3 16:33:49 2026 +0200

    document raw string usage
---
 CLAUDE.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/CLAUDE.md b/CLAUDE.md
index b7cb7994..94d7f463 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -42,6 +42,13 @@ almost always be doing.
 - `LangVersion` is `latest`, and current C# features are welcome and in use: 
primary
   constructors (`csharp_style_prefer_primary_constructors = true`), the 
`field` keyword in
   property accessors, list patterns, `switch` expressions.
+- **Wrap long string literals with a multi-line raw string (`"""`), never with 
`+`
+  concatenation.** This includes attribute arguments — see the 
`[Obsolete(...)]` message on
+  `log4net.Appender.SmtpAppender`. Raw strings have no line-continuation, so 
each source line
+  break really is a `\n` in the value, but that is fine here: compiler 
diagnostics render those
+  newlines as spaces, so a wrapped message still reads as one sentence. Raw 
strings are constant
+  expressions, so they are legal in attributes, and the feature is purely 
syntactic — it works on
+  `net462`/`netstandard2.0` too.
 - Private fields are `_camelCase`. Private fields and helper methods are 
commonly placed
   *after* the public surface of the type rather than at the top.
 
@@ -88,3 +95,8 @@ almost always be doing.
   there is no mocking library in any test project. See `ISmtpTransport` / 
`FakeSmtpTransport`.
 - Verify with `dotnet build src/log4net.sln` and
   `dotnet test src/<project>.Tests/<project>.Tests.csproj`.
+- **When inspecting build output, redirect it to a file and read the whole 
thing; do not pipe
+  MSBuild through line-oriented tools.** `grep`/`Select-String` cannot match 
across newlines, and
+  MSBuild's console logger formats differently when piped than when redirected 
— a multi-line
+  diagnostic message then looks truncated when it is not. Before reporting 
that the toolchain
+  mangles something, re-check with `dotnet build … > out.txt 2>&1` and inspect 
`out.txt`.

Reply via email to