fluffynuts commented on code in PR #203:
URL: https://github.com/apache/logging-log4net/pull/203#discussion_r1825457681


##########
src/log4net.Tests/Appender/RollingFileAppenderTest.cs:
##########
@@ -524,23 +523,10 @@ private static string GetCurrentFile() =>
   /// <param name="sBackupGroup"></param>
   /// <param name="iBackupFileLength"></param>
   /// <returns></returns>
-  private static List<RollFileEntry> 
MakeBackupFileEntriesFromBackupGroup(string sBackupGroup, int iBackupFileLength)
-  {
-    string[] sFiles = sBackupGroup.Split(' ');
-
-    List<RollFileEntry> result = [];
-
-    for (int i = 0; i < sFiles.Length; i++)
-    {
-      // Weed out any whitespace entries from the array
-      if (sFiles[i].Trim().Length > 0)
-      {
-        result.Add(new RollFileEntry(sFiles[i], iBackupFileLength));
-      }
-    }
-
-    return result;
-  }
+  private static List<RollFileEntry> 
MakeBackupFileEntriesFromBackupGroup(string sBackupGroup, int 
iBackupFileLength) 
+    => sBackupGroup.Split(' ').Where(file => file.Trim().Length > 0)

Review Comment:
   personal note: i really don't like inline method bodies - it's like I take a 
little longer to grok them over, eg
   
   ```csharp
   private static List<RollFileEntry> MakeBackupFileEntriesFromBackupGroup(
       string sBackupGroup,
       int iBackupFileLength
   )
   {
       return sBackupGroup.Split(' ')
                                         .Where(file => file.Trim().Length > 0)
                                         .Select(file => new 
RollFileEntry(file, iBackupFileLength))
                                         .ToList()
   }
   ```
   
   Perhaps it's just me though...
   
   I'd also like to make two "soft" suggestions for code style going forward:
   1. vertical parameters (as in my example above) - see 
https://youtu.be/1WL-SudgJAo (I had to re-upload this because it had been 
removed, so I got it from archive.org and re-upped)
   2. dropping type prefixes for variables / parameters (eg _i_BackupFileLength 
and _s_BackupGroup)
   
   I wouldn't go on a major refactoring spree, just fix things as I'm in the 
area.



##########
src/log4net.Tests/Appender/AdoNetAppenderTest.cs:
##########
@@ -80,69 +80,70 @@ public void BufferingTest()
     }
     log.Debug("Message");
     Assert.That(Log4NetCommand.MostRecentInstance, Is.Not.Null);
-    Assert.That(Log4NetCommand.MostRecentInstance!.ExecuteNonQueryCount, 
Is.EqualTo(bufferSize + 1));
+    Assert.That(Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount, 
Is.EqualTo(bufferSize + 1));
   }
 
   [Test]
   public void WebsiteExample()
   {
     XmlDocument log4NetConfig = new();
-    log4NetConfig.LoadXml(@"
-                <log4net>
-                <appender name=""AdoNetAppender"" 
type=""log4net.Appender.AdoNetAppender"">
-                    <bufferSize value=""-1"" />
-                    <connectionType 
value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
-                    <connectionString value=""data source=[database 
server];initial catalog=[database name];integrated security=false;persist 
security info=True;User ID=[user];Password=[password]"" />
-                    <commandText value=""INSERT INTO Log 
([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, 
@thread, @log_level, @logger, @message, @exception)"" />
-                    <parameter>
-                        <parameterName value=""@log_date"" />
-                        <dbType value=""DateTime"" />
-                        <layout type=""log4net.Layout.RawTimeStampLayout"" />
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@thread"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%thread"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@log_level"" />
-                        <dbType value=""String"" />
-                        <size value=""50"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%level"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@logger"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%logger"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@message"" />
-                        <dbType value=""String"" />
-                        <size value=""4000"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%message"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@exception"" />
-                        <dbType value=""String"" />
-                        <size value=""2000"" />
-                        <layout type=""log4net.Layout.ExceptionLayout"" />
-                    </parameter>
-                </appender>
-                <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""AdoNetAppender"" />
-                  </root>  
-                </log4net>");
+    log4NetConfig.LoadXml("""

Review Comment:
   suggest: with raw strings, I find it useful to do them in the format:
   
   ```csharp
   log4NetConfig.LoadXml(
       """
       <log4net>
       ....
       </log4net>
       """
   ```
   
   so that the stripped whitespace is more obvious (lining up the opening """ 
with the start/end text and the closing """) - indeed, I had to look up what 
happens here because Rider always marks raw strings with alignment like this as 
an issue - to find that the whitespace preceding the _final line_ is stripped 
from the beginning of each line ( 
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/raw-string
 ). So in the test code here, the entire file looks like it would be prefixed 
with 2 spaces, where the example I've given is completely left-aligned.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to