Does this code demonstrate the problem at all? I get the same results from .NET 
1.1 and 2.0:

using System;
using System.Runtime.CompilerServices;
using log4net;
using log4net.Appender;
using log4net.Config;
using log4net.Layout;

namespace ConsoleApplication2
{
    class Class1
    {
        private readonly static ILog log = LogManager.GetLogger(typeof(Class1));

        [STAThread]
        static void Main(string[] args)
        {
            ConsoleAppender consoleAppender = new ConsoleAppender();
            consoleAppender.Layout = new 
PatternLayout("%20.20type{1}.%-30.30method %message%newline");
            BasicConfigurator.Configure(consoleAppender);
            log.Info("Application starting.");

            OneTwoThreeFourFiveSixSevenEightNineTen numbers =
                new OneTwoThreeFourFiveSixSevenEightNineTen();

            numbers.TenNineEightSevenSixFiveFourThreeTwoOne();
        }
    }

    public class OneTwoThreeFourFiveSixSevenEightNineTen
    {
        private readonly static ILog log = 
            
LogManager.GetLogger(typeof(OneTwoThreeFourFiveSixSevenEightNineTen));

        public void TenNineEightSevenSixFiveFourThreeTwoOne()
        {
            log.Debug("Hello World");
        }
    }
}

It produces the following output in Debug mode:

              Class1.Main                           Application starting.
SixSevenEightNineTen.ghtSevenSixFiveFourThreeTwoOne Hello World

and the following output in Release mode:

              Class1.Main                           Application starting.
              Class1.Main                           Hello World

The long class and method names look like they're being truncated at 20 and 30 
characters respectively. Adding this attribute to the TenNineEight... method:

[MethodImpl(MethodImplOptions.NoInlining)]

made the output the same for both builds. Does your problem go away when your 
add the NoInlining option? I don't know if its possible to code around compiler 
optimizations.

----- Original Message ----

From: Drew Burlingame <[EMAIL PROTECTED]>

To: [email protected]

Sent: Wednesday, December 20, 2006 6:31:58 PM

Subject: log4net is truncating log messages with %20.20type{1}.%-30.30method in 
the ConversionPattern



we've encountered a problem where log4net is truncating log messages (samples 
below).  The truncating only happens when we compile in release and the 
ConversionPattern includes %20.20type{1}.%-30.30method.  I'm assuming it has to 
do with the code optimizations interfering with log4net.  What can we do to get 
the release logging to work correctly? 



Thanks,

Drew



 environment:

 - version 1.2.10.0

 - framwork: 2.0

 - os: xp and 2003



release:



DEV   |20061220-16:40:01.754|            1| INFO  |20061220-16:40:01.848|    
ChnSrvr:7|      CommandLineHost.StartService                   | Starting 
channel server in a thread

 INFO  |20061220-16:40:14.176|    ChnSrvr:7|        ChannelServer.StartServer   
                 | Channel server is loading backchat cache

DEBUG |20061220-16:40:14.223|    ChnSrvr:7| DEBUG |20061220-16:40:14.223|    
ChnSrvr:7| TRACE |20061220-16:40: 14.317|    ChnSrvr:7|    
ServerNodeManager.set_Domain                     | Domain for ServerNodeManager 
set to <example.com>



debug:



DEV   |20061220-16:04:20.219|            1|          TimerService.setNewTimer   
                 | Setting new timerinterval of <15> seconds

INFO  |20061220-16:04:20.297|    ChnSrvr:7|      CommandLineHost.StartService   
                | Starting channel server in a thread 

INFO  |20061220-16:04:38.063|    ChnSrvr:7|        ChannelServer.StartServer    
                | Channel server is loading backchat cache

DEBUG |20061220-16:04:38.094|    ChnSrvr:7|     ParlanoSqlHelper.logSproc       
                | exec procSearchForNodes 0, '', 0 

DEBUG |20061220-16:04:38.094|    ChnSrvr:7|     ParlanoSqlHelper.ExecuteReader  
                | loading data with <<get_RunLoadIdsDelegate>b__0>

TRACE |20061220-16:04:38.172|    ChnSrvr:7|    ServerNodeManager.set_Domain     
                 | Domain for ServerNodeManager set to <example.com>





 







Reply via email to