A portable logging abstraction for .NET
Clone or download
Latest commit 8b7bf6d May 3, 2018
Permalink
Failed to load latest commit information.
.vscode .NET Core building and packaging Sep 24, 2016
doc Fix typo in ConsoleOutLoggerFactoryAdapter declarative config example Oct 10, 2014
examples doc generator metadata added Oct 5, 2016
lib adding NLog 4.4.12 binaries Aug 16, 2017
nuget-graphics graphics updates Nov 1, 2014
package-nuget add explicit -Source param to mitigate breaking-change removal of 'de… May 29, 2016
packages adding adapter for ApplicationInsights 2.4.0 Aug 3, 2017
src update metadata to reflect version 3.4.1 Aug 16, 2017
test Adding support for NLog 4.4.12 Aug 16, 2017
tools updating nuget binary to 4.3.0.3 Aug 3, 2017
.gitignore adding additional output docs to IGNORE list Aug 12, 2017
Common.Logging.2010-net20.sln adding support for log4net 2.0.6 and 2.0.7 Aug 12, 2017
Common.Logging.2010-net20.sln.GhostDoc.xml updating help-file-generator metadata Oct 4, 2016
Common.Logging.2010.sln Adding support for NLog 4.4.12 Aug 16, 2017
Common.Logging.2010.sln.GhostDoc.xml updating help-file-generator metadata Oct 4, 2016
Common.Logging.2013.sln adding adapter for ApplicationInsights 2.4.0 Aug 3, 2017
Common.Logging.2013.sln.GhostDoc.xml updating help-file-generator metadata Oct 4, 2016
Common.Logging.2015.sln adding adapter for ApplicationInsights 2.4.0 Aug 3, 2017
Common.Logging.2015.sln.GhostDoc.xml updating help-file-generator metadata Oct 4, 2016
Common.Logging.build update to invoke 'dotnet restore' from root of project repo on build Oct 6, 2016
Common.Logging.ndoc fixing nant refs to correct ziplib binary for packaging step Jan 19, 2012
appveyor.yml wire up post-build script to post test-results to Appveyor dashboard Jan 11, 2015
build-ci.cmd update to opt-OUT of RELEASE build so that missing SNK file from proj… Sep 25, 2016
build-dev.cmd chain build*.cmd files to call thru to same build.cmd Jan 19, 2012
build-package.cmd chain build*.cmd files to call thru to same build.cmd Jan 19, 2012
build-release.cmd update metadata to reflect version 3.4.1 Aug 16, 2017
build.cmd chain build*.cmd files to call thru to same build.cmd Jan 19, 2012
changelog.txt adjust explanation of PCL support strategy in notes for 3.0.0 Mar 27, 2015
global.json adding /test/ folder to path list Oct 6, 2016
license.txt add top level readme and license file. Remove similar in subdirs Feb 27, 2007
readme.md Update NLog docs Oct 10, 2017
release-checklist.txt fixed missing tools folder for release Apr 26, 2009

readme.md

Common.Logging .NET

Project Build Status

Build status

*Note: Build may periodically fail due to issues with the code-coverage tooling (NCover) being unable to reliably connect to the test-runner during test-runs on the CI server platform we've selected (Appveyor). Work continues to investigate this further, but until resolved properly visitors are advised to discount failing builds reported here.

Introduction

Provides a simple logging abstraction to switch between different logging implementations. There is current support for log4net, NLog, Microsoft Enterprise Library logging, Microsoft Application Insights, Microsoft Event Tracing for Windows, and Serilog.

Additionally Common.Logging comes with a set of base classes making the integration of any log system a breeze.

See also

Console Quickstart

This demonstrates how to configure your app to log using the built in Common.Logging console adapter.

1) Install Common.Logging via NuGet

Either open the Package Management Console and enter the following or use the built-in GUI

NuGet: PM> Install-Package Common.Logging

2) Register and configure Common.Logging

Then add the relevant sections to your app.config or web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>

  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
        <arg key="level" value="INFO" />
        <arg key="showLogName" value="true" />
        <arg key="showDateTime" value="true" />
        <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
      </factoryAdapter>
    </logging>
  </common>

</configuration>

NLog Quickstart

There are different packages for each major NLog version. Install the correct package for your referenced NLog version. This example installs the adapter for NLog v4.1:

PM> Install-Package Common.Logging.NLog41

If you are using NLog v4.0, you should install the Common.Logging.NLog40 package and so on.

NB: Because NLog is using semver and the same strong name for every major version, Common.Logging.NLog40 and Common.Logging.NLog41 works for all NLog 4.x version. Common.Logging.NLog41 is the recommend version

The app config should then have a common logging section like below. Be sure to match the factoryAdapter type with your installed Common.Logging.NLogXX version.

<common>
    <logging>
      <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog41">
    	<arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
</common>

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</nlog>

Application Insights Quickstart

There are different packages for each major Application Insights version. Install the correct package for your referenced Application Insights version. This example installs the adapter for Application Insights v0.17:

PM> Install-Package Microsoft.ApplicationInsights -Version 0.17.0

The app config should then have an Application Insights section like below. Be sure to set the InstrumentationKey with your InstrumentationKey retrieved from Application Insights portal https://portal.azure.com.

<common>
    <logging>
      <factoryAdapter type="Common.Logging.ApplicationInsights.ApplicationInsightsLoggerFactoryAdapter, Common.Logging.ApplicationInsights">
    	<arg key="InstrumentationKey" value="[YOUR APPLICATION INSIGHTS INSTRUMENTATION KEY]" />
      </factoryAdapter>
    </logging>
</common>

See module documentation and Source Forge for other factoryAdapters and their configuration values

Solution Layout

  • bin contains the Common.Logging distribution dll files
  • doc contains reference documentation.
  • shared contains shared nant build scripts
  • modules contains the sourcecode for Common.Logging.XXXX modules
  • redist contains redistributable assemblies like log4net for your convenience

The Common Infrastructure Libraries for .NET are released under the terms of the Apache Software License (see license.txt).

Building

  • Clone the GitHub repository
  • Install Silverlight SDK 5
  • [Optional] Install Java for the documentation builder
  • Create a strong name key. c:\netcommon>sn -k common.net.snk
  • Build the the solution. c:\netcommon>build-release.cmd