Skip to content

Zastai/MetaBrainz.MusicBrainz.CoverArt

Repository files navigation

MetaBrainz.MusicBrainz.CoverArt Build Status NuGet Version

This is a .NET implementation of the libcoverart library (wrapping the CoverArtArchive API). An attempt has been made to keep the same basic class hierarchy.

Debugging

The CoverArt class provides a TraceSource that can be used to configure debug output; its name is MetaBrainz.MusicBrainz.CoverArt.

Configuration

In Code

In code, you can enable tracing like follows:

// Use the default switch, turning it on.
CoverArt.TraceSource.Switch.Level = SourceLevels.All;

// Alternatively, use your own switch so multiple things can be
// enabled/disabled at the same time.
var mySwitch = new TraceSwitch("MyAppDebugSwitch", "All");
CoverArt.TraceSource.Switch = mySwitch;

// By default, there is a single listener that writes trace events to
// the debug output (typically only seen in an IDE's debugger). You can
// add (and remove) listeners as desired.
var listener = new ConsoleTraceListener {
  Name = "MyAppConsole",
  TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId,
};
CoverArt.TraceSource.Listeners.Clear();
CoverArt.TraceSource.Listeners.Add(listener);

In Configuration

Starting from .NET 7 your application can also be set up to read tracing configuration from the application configuration file. To do so, the application needs to add the following to its startup code:

System.Diagnostics.TraceConfiguration.Register();

(Provided by the System.Configuration.ConfigurationManager package.)

The application config file can then have a system.diagnostics section where sources, switches and listeners can be configured.

<configuration>
  <system.diagnostics>
    <sharedListeners>
      <add name="console" type="System.Diagnostics.ConsoleTraceListener" traceOutputOptions="DateTime,ProcessId" />
    </sharedListeners>
    <sources>
      <source name="MetaBrainz.MusicBrainz.CoverArt" switchName="MetaBrainz.MusicBrainz.CoverArt">
        <listeners>
          <add name="console" />
          <add name="caa-log" type="System.Diagnostics.TextWriterTraceListener" initializeData="caa.log" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="MetaBrainz.MusicBrainz.CoverArt" value="All" />
    </switches>
  </system.diagnostics>
</configuration>

Release Notes

These are available on GitHub.