logging creates log file - but nothing written

Topics: Logging Application Block
Apr 15, 2010 at 8:46 AM
Edited Apr 15, 2010 at 10:05 AM

Hi

I'm trying to use the the EntLib logging application block with a WCF service using EntLib 4.1.

 

The service is ultimately be to installed on a win 2008 server as a windows service.

I have tested the logging using the following scenarios:

  • As a console app on WinXp - works
  • As a WCF service hosted in ISS on WinXP - no file created.
  • As a WCF service hosted in Visual Studio web server - creates file, but nothing written.
  • As a Windows service in Win 2008 - file created, but nothing written.

 

It seems like a permission issue, but I'm unsure why in some cases the file is created but nothing is written.

Also, how can I give the 'Local System' account write permissions on the Win 2008 box?

 

Many thanks.

 

--------

Update.

I noticed something interesting in the log that was being generated from the console:

I use: log.Message = "Time is: " + System.DateTime.Now; to write the time into the log.

And in the log I get the following:

All Events Information: 300 : Timestamp: 15/04/2010 9:02:24 a.m.
Message: Time is: 15/04/2010 11:02:24 a.m.

How can the two times be out by 2 hours?

 

 

Apr 15, 2010 at 10:05 AM

Hi,

Please see this FAQ item if it would help http://entlib.codeplex.com/wikipage?title=Why%20are%20messages%20not%20logged%3f&referringTitle=EntLib%20FAQ.

Also, could you check if there is generated log by the Errors and Warnings Category and what exception does it throws?

Gino Terrado
Global Technology and Solutions
Avanade, Inc.
entlib.support@avanade.com

Apr 15, 2010 at 10:12 AM

Please note that timestamp value is defaulted to UTC. If you want to use your local timezone you can set in your TextFormatter this token {timestamp(local)}, which is also documented in FAQ item http://entlib.codeplex.com/wikipage?title=How%20can%20I%20change%20the%20timestamp%20format%20of%20my%20log%20entries%20to%20my%20local%20time%3f&referringTitle=EntLib%20FAQ

Gino Terrado
Global Technology and Solutions
Avanade, Inc.
entlib.support@avanade.com

Apr 15, 2010 at 10:23 AM

H Gino

 

Thanks for the reply. I have checked the link you provided, but I dont think it is any of those points as I am not using any filtering, and the same settings are working on a console app.

 

Here is my entlib logging settings:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <loggingConfiguration name="Logging Application Block" tracingEnabled="true"
        defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
        <listeners>
            <add fileName="C:\OpenGIS\SLD\SLDsvc\Tests\SLDsvc.Host\consoletrace.log"
                header="----------------------------------------" footer="----------------------------------------"
                formatter="Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                name="FlatFile TraceListener" />
        </listeners>
        <formatters>
            <add template="Timestamp: {timestamp}&#xD;&#xA;Message: {message}&#xD;&#xA;Category: {category}&#xD;&#xA;Priority: {priority}&#xD;&#xA;EventId: {eventid}&#xD;&#xA;Severity: {severity}&#xD;&#xA;Title:{title}&#xD;&#xA;Machine: {machine}&#xD;&#xA;Application Domain: {appDomain}&#xD;&#xA;Process Id: {processId}&#xD;&#xA;Process Name: {processName}&#xD;&#xA;Win32 Thread Id: {win32ThreadId}&#xD;&#xA;Thread Name: {threadName}&#xD;&#xA;Extended Properties: {dictionary({key} - {value}&#xD;&#xA;)}"
                type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                name="Text Formatter" />
        </formatters>
        <categorySources>
            <add switchValue="All" name="General">
                <listeners>
                    <add name="FlatFile TraceListener" />
                </listeners>
            </add>
        </categorySources>
        <specialSources>
            <allEvents switchValue="All" name="All Events">
                <listeners>
                    <add name="FlatFile TraceListener" />
                </listeners>
            </allEvents>
            <notProcessed switchValue="All" name="Unprocessed Category" />
            <errors switchValue="All" name="Logging Errors &amp; Warnings" />
        </specialSources>
    </loggingConfiguration>
</configuration>

And here is the code that I am using to write to the l log:

 

var log = new LogEntry();
            ServiceController service = new ServiceController(serviceName);
            try
            {
                
                log.EventId = 300;
                log.Message = "Attempt to Restart Geoserver";

                log.Severity = TraceEventType.Information;
                log.Priority = 5;

                Logger.Write(log);

etc etc...

Apr 15, 2010 at 11:24 AM

I've tried to reproduce your problem in a ConsoleApp and WCF Service hosted in VS Web Server and it's working from my end, though I'm using Win7.

I haven't tried it yet when hosted in IIS and in Win2008 but I'd like to try it out using your actual or sample app.

Can you send a copy of your sample app to us?

Gino Terrado
Global Technology and Solutions
Avanade, Inc.
entlib.support@avanade.com

Apr 15, 2010 at 12:17 PM

Hi Gino

 

Thanks again for your help, and you offer to look at my code. Due to  sensitive nature of some of the code I cannot send it. However, I have done some further testing.

I made a simple WCF web application and added the Entlib logging - and it worked.

 

The project I am working on uses the Service Factory. I made another simple project using the Service factory, added the EntLib logging to the Service Implementation, and added logging code to the method.

I then added the config settings to the hosting app (Visual Studio web server) - and again, the file was empty.

 

I can send you the test solution (which uses the service factory - but you will probably need to have the service factory installed).

Apr 15, 2010 at 1:13 PM

I'll let you if we find anything suspicious. You cand send it here entlib.support@avanade.com