Built-in Loggers

Ice provides a file-based logger as well as Unix- and Windows-specific logger implementations. For .NET, the default Ice logger uses a TraceListener and so can be customized at run time via configuration.

On this page:

File Logger

The file-based logger is enabled via the Ice.LogFile property. This logger is available for all supported languages and platforms.

.NET Logger

The default logger in Ice for .NET writes its messages using the System.Diagnostics.Trace facility. By default, the Ice run time registers a ConsoleTraceListener that writes to stderr. You can disable the logging of messages via this trace listener by setting the property Ice.ConsoleListener to zero.

You can change the trace listener for your application via the application's configuration file. For example:

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener"
          type="System.Diagnostics.EventLogTraceListener"
          initializeData="TraceListenerLog" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

This configuration installs a trace listener that logs to the Windows event log using the source name TraceListenerLog.

The EventLogTraceListener creates a new event source if no match is found for the source name defined by initializeData, and creating a new event source requires that you run the application with administrative privileges. Alternatively, you can create the event source in advance using an administrative tool. For more information, search MSDN for "EventLog Component".

Syslog Logger

You can activate a logger that logs via the Unix syslog implementation by setting the Ice.UseSyslog property. This logger is available in Ice for C++,  C# and Java, as well as for scripting languages based on Ice for C++.

Systemd Logger

You can activate a logger that logs to the systemd journal by setting the Ice.UseSystemdJournal property. This logger is available only on Linux for Ice for C++ and for scripting languages based on Ice for C++.

Windows Logger

On Windows, subclasses of Ice::Service use the Windows application event log by default. The event log implementation is available for C++ applications.

See Also