Provides a simple logging abstraction to switch between different logging implementations. There is current support for log4net, NLog and Enterprise Library logging.
Additionally Common.Logging comes with a set of base classes making the integration of any log system a breeze.
See also
- Github
- Source Forge
- NuGet:
Install-Package Common.Logging
This demonstrates how to configure your app to log using the built in Common.Logging console adapter.
Either open the Package Management Console and enter the following or use the built-in GUI
NuGet: PM> Install-Package 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>
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 v2.0:
PM> Install-Package Common.Logging.NLog20
If you are using NLog v3.0, you should install the Common.Logging.NLog30
package and so on.
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.NLog20">
<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>
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
- 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).
- Clone the GitHub repository
- Install Silverlight SDK 5
- [Optional] Install Java for the documenation builder
- Create a strong name key.
c:\netcommon>sn -k common.net.snk
- Build the the solution.
c:\netcommon>build-release.cmd