Search code examples
c#debuggingwindows-servicesoutputdebugstring

Debug.WriteLine in Windows Service to OutputDebugString


Context

NOTE: log4net isolated out from the issue, just writing the context for more diagnostic facts

I am using log4net RollingFileAppender and DebugAppener. The app can be started in console mode but also can be installed as service. When starting stanalone all DebugAppener goes to OutputDebugString confirmed via Mark Russinovich's DebugView. When running as a service only the file log is written no output OutputDebugString.

Diagnostics

  • The issue is not related with log4net or DebugAppender. The very same issue happens with a pure Debug.WriteLine("Hello world") call
  • The service is running as LocalSystem (so probably it is not a permission issue)
  • File is written correctly both cases

Question

What am I missing? How can I write to OutputDebugString (using log4net DebugAppender) when running as a service?


Solution

  • The two likely cases are

    • make sure DebugView is run as Administrator
    • check the checkmark at "Capture global Win32" in the "Capture" menu

    and it should display debug messages of services as well.