Skip to content

Instantly share code, notes, and snippets.

@Netzach-Nyss
Last active January 15, 2025 12:14
Show Gist options
  • Select an option

  • Save Netzach-Nyss/569215bae6f955ce00f3566614ad744e to your computer and use it in GitHub Desktop.

Select an option

Save Netzach-Nyss/569215bae6f955ce00f3566614ad744e to your computer and use it in GitHub Desktop.
RavenDB NLog configuration for Grafana Loki
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="c:\work\log.txt" internalLogLevel="Trace">
<extensions>
<add assembly="NLog.Loki" />
</extensions>
<targets>
<target xsi:type="AsyncWrapper" name="Raven_Default_Target">
<target
name="FileTarget"
xsi:type="File"
createDirs="true"
fileName="${basedir}/Logs/${shortdate}.log"
archiveNumbering="DateAndSequence"
header="Date|Level|ThreadID|Resource|Component|Logger|Message|Data"
layout="${longdate}|${level:uppercase=true}|${threadid}|${event-properties:item=Resource}|${event-properties:item=Component}|${logger}|${message:withexception=true}|${event-properties:item=Data}"
footer="Date|Level|Resource|Component|Logger|Message|Data"
concurrentWrites="false"
writeFooterOnArchivingOnly="true"
archiveAboveSize="134217728"
enableArchiveFileCompression="true" />
</target>
<target xsi:type="AsyncWrapper" name="Raven_Default_Audit_Target">
<target
name="FileTarget"
xsi:type="File"
createDirs="true"
fileName="${basedir}/Logs/${shortdate}.audit.log"
archiveNumbering="DateAndSequence"
header="Date|Level|ThreadID|Resource|Component|Logger|Message|Data"
layout="${longdate}|${level:uppercase=true}|${threadid}|${event-properties:item=Resource}|${event-properties:item=Component}|${logger}|${message:withexception=true}|${event-properties:item=Data}"
footer="Date|Level|Resource|Component|Logger|Message|Data"
concurrentWrites="false"
writeFooterOnArchivingOnly="true"
archiveAboveSize="134217728"
maxArchiveDays="3"
enableArchiveFileCompression="false" />
</target>
<target
name="loki"
xsi:type="loki"
batchSize="200"
taskDelayMilliseconds="500"
endpoint="https://logs-YOUR_ENDPOINT.grafana.net"
username="YOUR_USERNAME"
password="YOUR_GRAFANA_CLOUD_LOKI_SECURITY_TOKEN"
orderWrites="true"
compressionLevel="noCompression"
eventPropertiesAsLabels="false"
layout="${longdate}|${level:uppercase=true}|${event-properties:item=Resource}|${event-properties:item=Component}|${logger}|${message:withexception=true}|${event-properties:item=Data}"
tenant="grafanacloud-Your_Domain_Name-logs">
<label name="app" layout="YOUR_RAVENDB_SERVER_NAME" />
<label name="Level" layout="${level}" />
<label name="Component" layout="${event-properties:item=Component}" />
<label name="Resource" layout="${event-properties:item=Resource}" />
</target>
</targets>
<rules>
<!--Those loggers are mandatory to be defined-->
<logger ruleName="Raven_System" name="System.*" finalMinLevel="Warn" />
<logger ruleName="Raven_Microsoft" name="Microsoft.*" finalMinLevel="Warn" />
<logger ruleName="Raven_Default_Audit" name="Audit" levels="Info" final="true" />
<logger ruleName="Raven_Default" name="*" levels="Info,Warn,Error,Fatal" writeTo="Raven_Default_Target" />
<logger ruleName="Raven_Default2" name="*" levels="Info,Warn,Error,Fatal" writeTo="loki" />
</rules>
</nlog>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment