Skip to content

Instantly share code, notes, and snippets.

@s0ren
Last active December 30, 2015 08:29
Show Gist options
  • Save s0ren/7802640 to your computer and use it in GitHub Desktop.
Save s0ren/7802640 to your computer and use it in GitHub Desktop.
Demo af NLog. NLog er et fint generelt værktøj til at logge i asp.net (og andre c# .net apps). Man kan skrive i loggen med en enkelt kommando og NLog kan skrive til filer, databaser og sågar emails. Det skal bare konfigureres, og det er ikke helt så lige til som man skulle tro. Derfor har jeg lavet et eksempel...
// NLog
// skriver i logfilen ~/NLog.log
// se også ~/System.config
// Dette eksempel er samlet fra eksempler på:
// https://github.com/nlog/NLog/wiki/Configuration%20file#wiki-configuration-file-locations
// https://github.com/nlog/NLog/wiki/Database-target
// http://nlog-project.org/2010/09/25/deploying-nlog-configuration.html
// https://github.com/nlog/NLog/wiki/Layout-renderers
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Log(NLog.LogLevel.Info, "login forsøg: brugernavn: "
+ brugernavn + ", feltråb: " + feltråb + " from ip:" + Request.UserHostAddress + "," + Request.ServerVariables["REMOTE_ADDR"]);
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<httpRuntime requestValidationMode="2.0" />
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<nlog>
<!--Dette eksempel er samlet fra eksempler på:
https://github.com/nlog/NLog/wiki/Configuration%20file#wiki-configuration-file-locations
https://github.com/nlog/NLog/wiki/Database-target
http://nlog-project.org/2010/09/25/deploying-nlog-configuration.html
https://github.com/nlog/NLog/wiki/Layout-renderers
-->
<targets>
<target name="logfile" type="File" fileName="${basedir}/logs/${shortdate}.log" />
<target type="Database"
name="logDB"
useTransactions="false"
connectionStringName="ConnectionString"
keepConnection="true"
commandText="INSERT INTO adminlog (time, level, class, message) VALUES (@time, @level, @class, @message);">
<parameter name="time" layout="${date}"></parameter>
<parameter name="level" layout="${level}"></parameter>
<parameter name="class" layout="${logger}"></parameter>
<parameter name="message" layout="${message}"></parameter>
<!--
Dette tartget skriver til en tabel der ser sådan ud:
CREATE TABLE [dbo].adminlog
(
[timestamp] TIMESTAMP NOT NULL PRIMARY KEY,
[time] NVARCHAR(50) NULL,
[level] NVARCHAR(50) NULL,
[class] NVARCHAR(50) NULL,
[message] NVARCHAR(MAX) NULL
)
-->
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
<logger name="*" minlevel="Info" writeTo="logDB" />
</rules>
</nlog>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment