-
Colored Console
- Parse conditions
- evaluate conditions
- figure out discrepency between HIghlightRowRUles and _highlightRowRles
- system logger
-
impl File target
-
fix bug in layout parser that ignores whitespace in text literals
-
make Layout defintions recursive
- implement FileTarget's archival and rotation semantics
- implement JsonTarget
- more layout renderers
- prove implementation of ILogger
- setup TargetWithLayoutHeaderFooter
- setup TargetWithLayout
- change current targets to implement LHF
- set LFH.closeTarget() to write footer
- set LFH.initialize() to write header
- implement programatic construction of loggers and log configurations
- implement runtime reload => trickle down to each logger and layout to reparse its settings
- AspNetBufferingWrapper
- AsyncWrapper
- AutoFlushWrapper
- BufferingWrpper
- Database
- LiteDB
- FallbackGroup
- FilteringWrapper
- LimitingWrapper
- PostFilteringWrapper
- RandomizeGroup
- RepeatingWrapper
- RetryingWrpper
- RoundRobinGroup
- SplitGroup
- AspNetTrace
- Debugger
- DebugSystem
- EasyGelf
- Elmah
- ETW
- Fluentd
- Gelf
- Gelf4NLog
- Glimpse
- MicrosoftDiagnosticSource
- MSMQ
- NLog.Gelf
- NLog.Targets.Grayloghttp
- OutputDebugString
- Perfcounter
- SignalR
- Trace
- Syslog
- Amazon CloudWatch
- Amazon SNS
- Amazon SQS
- Blipboard.io
- elmah.io
- ExceptionLess
- Google Logging
- LiveSwitch
- LogEntries
- Loggly
- Logify
- Logzio
- Loki
- Loupe
- Microsoct Azure AppCenter
- Microsoft Azure ApplicationInsights
- Microsoft Azure Blob Storage
- Microsoft Azure DataTables Storage
- Microsoft Azure EventHubs
- Microsoft Azure File System
- Microsoft Azure Queue Storage
- Microsoft Azure ServiceBus
- Microsoft Azure Table Storage
- Pushover
- R7 InsightOps
- RavenDB
- Raygun
- ReflectInsight
- Rollbar.NET
- Sentry (Raven sdk)
- Sentry (Unified sdk)
- Seq
- StackifyRetrace
- SumoLogic
- Chainsaw
- GrowlNotify
- NLogViewer
- Memory
- MethodCall
- ImpersonatingWrapper
- LogReceiverService
- Network
- WebService
- FormControl
- MessageBox
- RichTextBox
- ToolStripItem
- Postgres
- Sqlite
- Slack
- Line
- n/a
- ${level}
- ${literal}
- ${newline}
- ${loggername}
- ${guid}
- ${sequenceid}
- ${dir-separator}
- ${longdate}
- ${shortdate}
- ${time}
- ${hostname}
- ${all-event-properties}
- ${event-property}
- ${message}
- ${local-ip}
- ${var}
- ${callsite}
- ${callsite-filename}
- ${callsite-linenumber}
- ${stacktrace}
- ${exception}
- ${counter}
- ${date}
- ${environment}
- ${environment-user}
- ${assebly-version}
- ${cached}
- ${when}
- ${whenempty}
- ${onexception}
- ${onhasproperties}
- ${basedir}
- ${currentdir}
- ${file-contents}
- ${log4jxmlevent}
- ${procesid}
- ${processinfo}
- ${processname}
- ${processlifetime}
- ${db-null}
- ${object-path}
- ${exceptiondata}
- ${activity}
- ${activityid}
- ${gdc}
- ${install-context}
- ${mdc}
- ${mdlc}
- ${ndc}
- ${ndlc}
- ${scopenested}
- ${scopeproperty}
- ${scopetiming}
- ${ticks}
- ${json-encode}
- ${left}
- ${lowercase}
- ${norawvalue}
- ${pad}
- ${replace}
- ${replace-newlines}
- ${right}
- ${rot13}
- ${substring}
- ${trim-whitespace}
- ${uppercase}
- ${url-encode}
- ${wrapline}
- ${xml-encode}
- ${appsettings}
- ${configetting}
- ${registry}
- ${filesystem-normalize}
- ${nlogdir}
- ${processdir}
- ${specialfolder}
- ${tempdir}
- ${identity}
- ${windows-identity}
- ${gelf}
- ${appdomain}
- ${gc}
- ${machinename}
- ${performancecounter}
- ${threadid}
- ${threadname}
- ${aspnet-*}
- ${unixtime}
This project is based entirely off NLog, and takes major inspiriation from its architecture. Although simplified, much of the underlying systems are laid out in the same manner.
flowchart TD
z{Rule\nwhat and where} --> t
t{Target\ntype,name} --> Layout
Layout --> x{{List LayoutRenderer}}
Layout --> y{{List Rule}}
- Strings must be surrounded by single-quotes
- e.g.,
${literal:text=hello}
->${literal:text='hello'}
- e.g.,
- ASP.NET integrations will not be considered
- Config file is json based, not xml based. Xml parsing will not be consideed at this time
- Some layout renderers that are not in NLog are included here. See also: ${unixtime}
${event-property}
layout renderer usesJSONPath
syntax for nested objects in theobjectpath
property- requred properties must be in
key=value
form.- e.g.,
${event-property:item1}
is not permitted. Use${event-property:item=item1}
instead
- e.g.,