Skip to content

Zastai/MetaBrainz.MusicBrainz.CoverArt

Folders and files

NameName
Last commit message
Last commit date
Feb 2, 2024
Jan 1, 2024
Jan 1, 2024
Nov 13, 2021
Apr 16, 2016
Nov 13, 2021
Jan 1, 2024
Dec 14, 2023
Dec 14, 2023
Dec 22, 2023
Dec 17, 2023
Dec 14, 2023
Dec 14, 2023

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.